gpt4 book ai didi

python - Pandas 列重新格式化

转载 作者:太空狗 更新时间:2023-10-29 22:14:35 25 4
gpt4 key购买 nike

有什么快速的方法可以实现下面的输出吗?

输入:

Code Items
123 eq-hk
456 ca-eu; tp-lbe
789 ca-us
321 go-ch
654 ca-au; go-au
987 go-jp
147 co-ml; go-ml
258 ca-us
369 ca-us; ca-my
741 ca-us
852 ca-eu
963 ca-ml; co-ml; go-ml

输出:

Code eq   ca    go    co    tp
123 hk
456 eu lbe
789 us
321 ch
654 au au
987 jp
147 ml ml
258 us
369 us,my
741 us
852 eu
963 ml ml ml

我再次遇到循环和非常丑陋的代码以使其工作。如果有一种优雅的方式来实现这一点,请问?

谢谢!

最佳答案

这个有点复杂

(df.set_index('Code')
.Items.str.split(';',expand=True)
.stack()
.str.split('-',expand=True)
.set_index(0,append=True)[1]
.unstack()
.fillna('')
.sum(level=0))

0 ca co eq go tp
Code
123 hk
147 ml ml
258 us
321 ch
369 usmy
456 eu lbe
654 au au
741 us
789 us
852 eu
963 ml ml ml
987 jp


# using str split to get unnest the column,
#then we do stack, and str split again , then set the first column to index
# after unstack we yield the result

关于python - Pandas 列重新格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53148121/

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