Pandas 将两列合并为 Json

gar*_*may 6 pandas

我有一个如下所示的 pandas 数据框

    Col1    Col2
0     a     apple
1     a     anar
2     b     ball
3     b     banana
Run Code Online (Sandbox Code Playgroud)

我希望输出 json,其输出如下

{ 'a' : ['apple', 'anar'], 'b' : ['ball', 'banana'] }
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 4

使用groupbywithapply并最后转换Seriesjsonby Series.to_json

j = df.groupby('Col1')['Col2'].apply(list).to_json()
print (j)
{"a":["apple","anar"],"b":["ball","banana"]}
Run Code Online (Sandbox Code Playgroud)

如果要写入json文件:

s = df.groupby('Col1')['Col2'].apply(list)
s.to_json('file.json')
Run Code Online (Sandbox Code Playgroud)

检查差异:

j = df.groupby('Col1')['Col2'].apply(list).to_json()
d = df.groupby('Col1')['Col2'].apply(list).to_dict()

print (j)
{"a":["apple","anar"],"b":["ball","banana"]}
print (d)
{'a': ['apple', 'anar'], 'b': ['ball', 'banana']}

print (type(j))
<class 'str'>

print (type(d))
<class 'dict'>
Run Code Online (Sandbox Code Playgroud)