Python 用JSON将JSONL键展开到列中
我试图用Python的pandas读取jsonl文件,但不知道如何处理json键 我正在做的是:Python 用JSON将JSONL键展开到列中,python,json,pandas,Python,Json,Pandas,我试图用Python的pandas读取jsonl文件,但不知道如何处理json键 我正在做的是: pd.read_json('jsonfile', lines=True) 我得到的结果是: ID COL1 COL2 COL3 0 12047 93947 {'A': '001', 'B': '"002"'} 1 83621 24013 {'H': '101', 'J': 'TTA', 'K': 'TTB'} 也就是说,COL3中的条目是可以有不同键的JSO
pd.read_json('jsonfile', lines=True)
我得到的结果是:
ID COL1 COL2 COL3
0 12047 93947 {'A': '001', 'B': '"002"'}
1 83621 24013 {'H': '101', 'J': 'TTA', 'K': 'TTB'}
也就是说,COL3
中的条目是可以有不同键的JSON
如何在列中转换COL3
中的键?由于某些行没有新生成的列的值,因此理想情况下,我更喜欢这样:
ID COL1 COL2 A B H J K
0 12047 93947 '001' '"002"' NA NA NA
1 83621 24013 NA NA '101' 'TTA' 'TTB'
您可以使用:
df=df.join(df.pop('COL3').apply(pd.Series))
print(df)
或:
如果COL3
不是实际的dict,您应该首先通过以下方式将其转换为dict:
df.COL3=df.COL3.apply(ast.literal_eval)
df.COL3=df.COL3.apply(ast.literal_eval)