gpt4 book ai didi

python - 数据框到自定义字典,反之亦然

转载 作者:行者123 更新时间:2023-11-30 23:02:44 26 4
gpt4 key购买 nike

我有一个将数据帧转换为字典并将字典返回为相同数据帧格式的用例。我能够弄清楚如何将数据帧转换为我想要的字典所需的格式。但是,反之亦然,我陷入了困境。

>>> df
C1 C2 C3
0 foo H C
1 foo D E
2 bar F G
3 bar E E
4 foo F G

>>> df['temp'] = df[['C2','C3']].apply(lambda x: {x[0]:x[1]},axis=1)
>>> df
C1 C2 C3 temp
0 foo H C {u'H': u'C'}
1 foo D E {u'D': u'E'}
2 bar F G {u'F': u'G'}
3 bar E E {u'E': u'E'}
4 foo F G {u'F': u'G'}

>>> df.groupby('C1')['temp'].apply(list)
C1
bar [{u'F': u'G'}, {u'E': u'E'}]
foo [{u'H': u'C'}, {u'D': u'E'}, {u'F': u'G'}]
Name: temp, dtype: object

>>> df.groupby('C1')['temp'].apply(list).to_dict()
{'foo': [{'H': 'C'}, {'D': 'E'}, {'F': 'G'}], 'bar': [{'F': 'G'}, {'E': 'E'}]}

经过处理后,我将得到类似的字典,并且值几乎没有变化。所以我想重建数据框。

当我重建时,

>>>pd.series({'foo': [{'H': 'C'}, {'D': 'E'}, {'F': 'G'}], 
'bar': [{'F': 'G'}, {'E': 'E'}]})

bar [{u'F': u'G'}, {u'E': u'E'}]
foo [{u'H': u'C'}, {u'D': u'E'}, {u'F': u'G'}]
dtype: object

之后我就没有任何线索了..

最佳答案

给定修改后的字典d,您可以使用列表理解来重新生成新的数据帧。

df_col_names = df.columns[:3]  # Use the first three column names to match output.
>>> pd.DataFrame([(c1, sub_dict.keys()[0], sub_dict.values()[0])
for c1 in d.keys()
for sub_dict in d[c1]],
columns=df_col_names)

C1 C2 C3
0 foo H C
1 foo D E
2 foo F G
3 bar F G
4 bar E E

关于python - 数据框到自定义字典,反之亦然,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34374476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com