我希望通过对值进行分组来消除数据帧中的重复记录.我的数据 struct 如下:
json = {
"employees": [
{"name": "Shyam", "email": "shyamjaiswal@gmail.com"},
{"name": "Bob", "email": "bob32@gmail.com"},
{"name": "Jai", "email": "jai87@gmail.com"},
]
}
df = pd.DataFrame({"key": ["A", "A"], "val": [1, 2], "json": [json, json]})
我想要的是单行:['A', [1, 2], 'json string']
我通常会这样做:
df.groupby(["val", "json"])["key"].apply(list)
如果不是因为json数据:TypeError: unhashable type: 'dict'
,这将工作得很好.因此,我要做的是首先将列转换为字符串:
df["json"] = df["json"].apply(json.dumps)
df = df.groupby(["val", "json"])["key"].apply(list)
然后将该列转换回JSON:
df["json"] = df["json"].apply(json.loads)
现在,这真的是最好的办法吗?我不禁想,一定有更好的.
有什么提示吗?