删除 DF 中的重复项并在 python 中转换为 JSON obj

删除 df 中的重复项并在 python 中转换为 json obj

问题内容

我有一个类似于下面的 df

name         series=============================a             a1b             b1a             a2a             a1b             b2

登录后复制

我需要将系列转换为一个列表,该列表应分配给每个名称,例如字典或 json obj,如下所示

{   "a": ["a1", "a2"],   "b": ["b1", "b2"]}

登录后复制

到目前为止,我已经尝试使用 groupby,但它只是将所有内容分组为一个单独的字典

test = df.groupby("series")[["name"]].apply(lambda x: x)

登录后复制

上面的代码给出了一个类似 df 的输出

立即学习“Python免费学习笔记(深入)”;

SeriesNameA     0   A1      2   A2      3   A1B     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 Series0    A     Z11    B     B12    A     A23    A     Z14    B     B2# output{'A': ['A2', 'Z1'], 'B': ['B1', 'B2']}

登录后复制

以上就是删除 DF 中的重复项并在 python 中转换为 JSON obj的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2211950.html

(0)
上一篇 2025年2月26日 05:04:27
下一篇 2025年2月18日 06:54:03

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论