gpt4 book ai didi

python - 在 Pandas 中,如何根据另一列的值拆分一列?

转载 作者:太空宇宙 更新时间:2023-11-04 08:24:28 25 4
gpt4 key购买 nike

我想从这个数据框结构开始:

df = pd.DataFrame({'col1':['a','a','b','b','c','c'],
'col2':['str_a1','str_a2','str_b1','str_b2','str_c1','str_c2']})

df

这个

df2 = pd.DataFrame({'col1_1':['a','b','c'],
'col2_1':['str_a1','str_b1','str_c1'],
'col2_2':['str_a2','str_b2','str_c2']})
df2

有没有办法在 pandas 中实现这一点?

最佳答案

使用、assignpivot 以及add_prefix

s = df.groupby('col1').cumcount().add(1)
df_out = (df.assign(n=s).pivot('col1', 'n', 'col2').add_prefix('col2_')
.reset_index())

Out[32]:
n col1 col2_1 col2_2
0 a str_a1 str_a2
1 b str_b1 str_b2
2 c str_c1 str_c2

或者set_indexpivotT

s = df.groupby('col1').cumcount().add(1)
df_out = (df.set_index(s).pivot(columns='col1', values='col2')
.rename(lambda x: f'col2_{x}').T.reset_index())

Out[75]:
col1 col2_1 col2_2
0 a str_a1 str_a2
1 b str_b1 str_b2
2 c str_c1 str_c2

关于python - 在 Pandas 中,如何根据另一列的值拆分一列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58776027/

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