gpt4 book ai didi

python - 在 python pandas 中,如何解压缩列中的列表?

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

我有一个 python 数据框,其中包含 3 列:

['date', 'country', 'dollar']

country 是一个字符串,通常看起来像 'singapore' 'ukraine' 等等

有时候,country栏的item是一个国家列表,用|分隔,比如

'US|UK|Germany'

相应的行将是:

20140101, 'US|UK|Germany', 123456

我想要的是“解包”国家列,并使其严格每行 1 个国家,上面的行应解包为 3 行:

20140101, 'US', 123456
20140101, 'UK', 123456
20140101, 'Germany', 123456

有没有什么巧妙的方法可以做到这一点?

谢谢!

最佳答案

此解决方案将更改列的顺序,我认为这在大多数情况下都很好。如果要保留列顺序,可以将 dict 替换为 OrderedDict

In [31]:
print DF
date country dollar
0 20140101 US|UK|Germany 123456
1 20140101 US|UK|Germany 123457

[2 rows x 3 columns]
In [32]:

DF.country=DF.country.apply(lambda x: x.split('|'))
print DF
date country dollar
0 20140101 [US, UK, Germany] 123456
1 20140101 [US, UK, Germany] 123457

[2 rows x 3 columns]
In [33]:

print pd.concat([pd.DataFrame(dict(zip(DF.columns,DF.ix[i]))) for i in range(len(DF))])
country date dollar
0 US 20140101 123456
1 UK 20140101 123456
2 Germany 20140101 123456
0 US 20140101 123457
1 UK 20140101 123457
2 Germany 20140101 123457

[6 rows x 3 columns]

关于python - 在 python pandas 中,如何解压缩列中的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22915308/

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