gpt4 book ai didi

python - 如何在不复制 Pandas 数据框中的其他列值的情况下分解列值?

转载 作者:行者123 更新时间:2023-12-03 23:27:35 25 4
gpt4 key购买 nike

我有这样的 df:

id       ColumnA           ColumnB           ColumnC
1 Audi_BMW_VW BMW_Audi VW
2 VW Audi Audi_BMW_VW

我想根据 _ 出现时爆炸来爆炸列。例如像这样的“A列”
df['Column A'].str.split('_')).explode('Column A')

但是当我对 B 列使用类似的查询时,它会重复 A 列的值,但我真的希望只有 ID 应该重复。 所需的输出将是这样的:
id       ColumnA           ColumnB           ColumnC
1 Audi BMW VW
1 BMW Audi
1 VW
2 VW Audi Audi
2 BMW
2 VW

最佳答案

很多 reshape 。关键是堆栈然后调用Series.str.split在与 id 的单个系列上作为索引。

(df.set_index('id')             # keep 'id' bound to cells in the row 
.stack() # to a single Series
.str.split('_', expand=True) # split into separate cells on '_'
.unstack(-1).stack(0) # original column labels back to columns
.reset_index(-1, drop=True) # remove split number label
)
   ColumnA ColumnB ColumnC
id
1 Audi BMW VW
1 BMW Audi None
1 VW None None
2 VW Audi Audi
2 None None BMW
2 None None VW

关于python - 如何在不复制 Pandas 数据框中的其他列值的情况下分解列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60818048/

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