
我有一个类似于下面的 df
name series ============================= a a1 b b1 a a2 a a1 b b2
我需要将系列转换为一个列表,该列表应分配给每个名称,例如字典或 json obj,如下所示
{
"a": ["a1", "a2"],
"b": ["b1", "b2"]
}到目前为止,我已经尝试使用 groupby,但它只是将所有内容分组为一个单独的字典
test = df.groupby("series")[["name"]].apply(lambda x: x)上面的代码给出了一个类似 df 的输出
立即学习“Python免费学习笔记(深入)”;
Series
Name
A 0 A1
2 A2
3 A1
B 1 B1
4 B2非常感谢任何帮助
谢谢
首先 drop_duplicates 确保有 ,然后 groupby.agg 作为列表:
out = df.drop_duplicates().groupby('name')['series'].agg(list).to_dict()或者拨打unique:
out = df.groupby('name')['series'].agg(lambda x: x.unique().tolist()).to_dict()输出:{'a': ['a1', 'a2'], 'b': ['b1', 'b2']}
如果您还有其他列,请确保仅保留感兴趣的列:
out = (df[['name', 'series']].drop_duplicates()
.groupby('name')['series'].agg(list).to_dict()
)out = (df.groupby('name')['series']
.agg(lambda x: sorted(x.unique().tolist())).to_dict()
)示例:
# input
Name Series
0 A Z1
1 B B1
2 A A2
3 A Z1
4 B B2
# output
{'A': ['A2', 'Z1'], 'B': ['B1', 'B2']}以上就是删除 DF 中的重复项并在 python 中转换为 JSON obj的详细内容,更多请关注php中文网其它相关文章!
python怎么学习?python怎么入门?python在哪学?python怎么学才快?不用担心,这里为大家提供了python速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号