用JSON将JSONL键展开为列

2024-05-29 10:28:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图用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中的条目是可以有不同键的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'

Tags: 文件idjsonpandasreadcol2col3col1
1条回答
网友
1楼 · 发布于 2024-05-29 10:28:36

您可以使用:

df=df.join(df.pop('COL3').apply(pd.Series))
print(df)

或:

#i think this should be faster
df=df.join(pd.DataFrame(df.pop('COL3').values.tolist(), index=df.index))
print(df)

  ID   COL1   COL2    A      B    H    J    K
0  0   12047  93947  001  "002"  NaN  NaN  NaN
1  1   83621  24013  NaN  NaN    101  TTA  TTB

为了防止COL3不是实际的dict,您应该首先通过以下方式将其转换为dict:

df.COL3=df.COL3.apply(ast.literal_eval)

相关问题 更多 >

    热门问题