我的熊猫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()
我得到keyerror at dat3
,请引导我提前找到解决方案。
答案 0 :(得分:1)
问题是list
不可散列,因此需要将它们转换为字符串:
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'}]