如何解决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 举报,一经查实,本站将立刻删除。