我想执行一项操作,根据另一列中的相同值将一列中的值扩展到新列。请参阅下面的示例
import pandas as pd
pd.DataFrame({'A': ['a', 'a', 'b', 'b'], 'B': ['x1', 'x2', 'x3', 'x4']})
A B
0 a x1
1 a x2
2 b x3
3 b x4
我想把它改成
A B1 B2
0 a x1 x2
1 b x3 x4
对于具有更多行和更多列的更大数据框。但是该操作只能在两列上执行。
您可以通过以下方式实现这一目标:
import pandas as pd
df = pd.DataFrame({'A': ['a', 'a', 'b', 'b'], 'B': ['x1', 'x2', 'x3', 'x4']})
df['helper'] = df.groupby('A').cumcount() + 1
result = df.pivot(index='A', columns='helper', values='B')
result.columns = [f'B{i}' for i in result.columns]
result = result.reset_index()
print(result)
这给出了
A B1 B2
0 a x1 x2
1 b x3 x4