gpt4 book ai didi

python - Pandas 列到数组

转载 作者:太空宇宙 更新时间:2023-11-03 19:43:40 26 4
gpt4 key购买 nike

我有一个具有以下结构的 df:

date      country  value

20200215 Austria 123.32
20200215 Finland 321.21
20200216 Austria 123.32
20200216 Finland 321.21

我想要实现的是:


date CountryValue

20200215 ['Austria':123.32,'Finland':321.21]
20200216 ['Austria':123.32,'Finland':321.21]

我无法找到解决方案,因此非常感谢您的帮助。

最佳答案

如果想要字典,请在 GroupBy.apply 中的每个组中使用 zipdict在 lambda 函数中:

f1 = lambda x: dict(zip(x['country'], x['value']))
df1 = df.groupby('date')['country','value'].apply(f1).reset_index(name='CountryValue')
print (df1)
date CountryValue
0 20200215 {'Austria': 123.32, 'Finland': 321.21}
1 20200216 {'Austria': 123.32, 'Finland': 321.21}

如果想要列表在列表理解中使用展平列表:

f2 = lambda x: [z for y in x.values for z in y]
df2 = df.groupby('date')['country','value'].apply(f2).reset_index(name='CountryValue')
print (df2)

date CountryValue
0 20200215 [Austria, 123.32, Finland, 321.21]
1 20200216 [Austria, 123.32, Finland, 321.21]

关于python - Pandas 列到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60282069/

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