gpt4 book ai didi

python - 如何在 pandas 中以 json 作为值进行分组?

转载 作者:行者123 更新时间:2023-12-01 08:21:05 24 4
gpt4 key购买 nike

我的 pandas DataFrame 数据:

     dat1 dat2 dat3
0 1 1 [{"gid": 1, "bs": "2", "_cc": "1"}]
1 1 1 [{"gid": 1, "bs": "2", "_cc": "1"}]
2 2 3 [{"gid": 3, "bs": "5", "_cc": "1"}]

我需要按列 dat1 进行分组,我的预期输出应该是:

     dat1 dat2 dat3
0 1 1 [{"gid": 1, "bs": "2", "_cc": "1"}]
1 2 3 [{"gid": 3, "bs": "5", "_cc": "1"}]

我使用 pandas 数据框如下:

data = dataframedata   #dataframe data 
(out['dat1','dat2','dat3']).groupby([ 'dat1','dat2','dat3']).size().reset_index()

我在 dat3 处遇到keyerror,请指导我找到解决方案,提前致谢。

最佳答案

问题是列表不可散列,因此需要将它们转换为字符串:

data = df[~df['dat3'].astype(str).duplicated()] 
print (data)
dat1 dat2 dat3
0 1 1 [{'gid': 1, 'bs': '2', '_cc': '1'}]
2 2 3 [{'gid': 3, 'bs': '5', '_cc': '1'}]

如果要删除多列的重复项:

data = df[~df.assign(dat3= df['dat3'].astype(str)).duplicated(['dat1','dat2','dat3'])] 
print (data)
dat1 dat2 dat3
0 1 1 [{'gid': 1, 'bs': '2', '_cc': '1'}]
2 2 3 [{'gid': 3, 'bs': '5', '_cc': '1'}]

关于python - 如何在 pandas 中以 json 作为值进行分组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54644135/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com