微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Pandas to_dict 数据结构,使用列作为字典索引

如何解决Pandas to_dict 数据结构,使用列作为字典索引

这只是我试图用 Pandas 实现的一个非常具体的数据结构转换,所以如果你知道怎么做,请分享:)

想象一下我有一个像这样的数据框

id 价值 日期
1 1 2021-04-01
1 5 2021-04-02
1 10 2021-04-03
2 3 2021-04-01
2 4 2021-04-02
2 11 2021-04-03

现在我想把它转换成一个对象,其中键是 id,值是关于该 id 的信息数组。所以它看起来像这样......

{
  '1': [
         { 'value': 1,'date': '2021-04-01' },{ 'value': 5,'date': '2021-04-02' },{ 'value': 10,'date': '2021-04-03' }
       ],'2': [
         { 'value': 3,{ 'value': 4,{ 'value': 11,}

我想我必须以某种方式使用 .to_dict(),但我不知道该怎么做?

想法?

编辑:我已经想出了一种蛮力的方法,我正在寻找更优雅的东西;)

解决方法

您可以在将数据框转换为 dict 对象后使用列表理解。

但这里有一种更熊猫的方式,如果您的 id 列是数据框的真实列,

df = df.set_index('id').T.to_dict()

如果您的意思是 id 作为数据帧的索引,请使用,

df = df.T.to_dict()
,

您可以在 groupby() 上使用 id,然后在每个组上使用 apply() to_dict()

df.groupby('id').apply(lambda x: x[['value','date']].to_dict(orient='records')).to_dict()
{1: [{'value': 1,'date': '2021-04-01'},{'value': 5,'date': '2021-04-02'},{'value': 10,'date': '2021-04-03'}],2: [{'value': 3,{'value': 4,{'value': 11,'date': '2021-04-03'}]}

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