gpt4 book ai didi

python - 根据符号将列中的值拆分为新行

转载 作者:行者123 更新时间:2023-12-01 00:19:16 25 4
gpt4 key购买 nike

我有这种形式的 pandas 数据框:

A         B       C       D
car 100 EUR T
train 20/r25 EUR/rUSD F
e-bike 10/r21 EUR/rGBP F

我想拆分此 /r 符号上的这些列(包含该符号的列),以便其他列重复,如结果 df 所示:

结果 df:

A         B       C   D
car 100 EUR T
train 20 EUR F
train 25 USD F
e-bike 10 EUR F
e-bike 21 GBP F

最佳答案

通过DataFrame.set_index创建索引MultiIndex与所有未拆分的列,则 Series.str.splitDataFrame.stack每列,将 MultiIndex 转换为列并添加 DataFrame.reindex对于像原始那样的列顺序以及删除 level 列:

df1 = (df.set_index(['A', 'D'])
.apply(lambda x: x.str.split('/r', expand=True).stack())
.reset_index()
.reindex(df.columns, axis=1))
print (df1)
A B C D
0 car 100 EUR T
1 train 20 EUR F
2 train 25 USD F
3 e-bike 10 EUR F
4 e-bike 21 GBP F

编辑:

df1 = (df.set_index(['D','E', 'F','G'])
.apply(lambda x: x.str.split('\r', expand=True).stack(dropna=False))
.reset_index()
.reindex(df.columns, axis=1)
)
print (df1)
A B C D E \
0 NUMER DATA WAL OKRESY WIEKOWANIA W DNIACH NaN
1 DOKUMENTU OPERACJI UTA OKRESY WIEKOWANIA W DNIACH NaN
2 NaN NaN NaN do 90 od 91 do 180
3 NaN NaN NaN do 90 od 91 do 180
4 NaN 2015-03-09 EUR NaN NaN
5 NaN None PLN NaN NaN
6 NaN 2015-12-07 EUR NaN NaN
7 NaN None PLN NaN NaN

F G H
0 NaN NaN NaN
1 NaN NaN NaN
2 od 181 do 270 od 271 do 360 od 361
3 od 181 do 270 od 271 do 360 None
4 NaN NaN 10,56
5 NaN NaN 43,60
6 NaN NaN 1 368,24
7 NaN NaN 5 902,72

关于python - 根据符号将列中的值拆分为新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59070918/

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