我有一个包含州和城市的数据集,现在一个州有多个城市,我想按州对它们进行分组并将输出转换为JSON
数据框
City State
0 A foo
1 B bar
2 D foo
3 C moo
4 E foo
5 F bar
我正在这样做:
df = data[["City","State"]]
df.groupby("State")
但是我得到以下内容
<pandas.core.groupby.generic.DataFrameGroupBy object at 0x00000265BC3422C8>
JSON:
{ 'foo':[A,D,E],
'bar':[B,F],
.
.
}
答案 0 :(得分:2)
将值转换为集合,然后转换为列表以删除重复项,然后转换为json
:
j = df.groupby('State')['City'].apply(lambda x: list(set(x))).to_json()
print (j)
{"bar":["B","F"],"foo":["A","E","D"],"moo":["C"]}
或通过DataFrame.drop_duplicates
删除重复项,然后聚合list
:
j = df.drop_duplicates(['State','City']).groupby('State')['City'].apply(list).to_json()