【发布时间】:2021-09-06 11:25:45
【问题描述】:
我想重塑 DataFrame,但我不确定最好的方法是什么:
原始数据框为:
df1 = pd.DataFrame({'A':['a','a','b','b'],'B':[1,2,2,3]})
我想把它改造成:
df2 = pd.DataFrame({'a':[1,2],'b':[2,3]})
谁能解释我如何做到最好?
提前谢谢你!
【问题讨论】:
我想重塑 DataFrame,但我不确定最好的方法是什么:
原始数据框为:
df1 = pd.DataFrame({'A':['a','a','b','b'],'B':[1,2,2,3]})
我想把它改造成:
df2 = pd.DataFrame({'a':[1,2],'b':[2,3]})
谁能解释我如何做到最好?
提前谢谢你!
【问题讨论】:
你可以在对输入进行一点重组后使用pivot:
(df1.assign(index=df1.groupby('A').cumcount())
.pivot(index='index', columns='A', values='B')
.rename_axis(None).rename_axis(None, axis=1)
)
或unstack:
(df1.set_index([df1.groupby('A').cumcount(), 'A'])
.unstack().droplevel(0, axis=1)
.rename_axis(None, axis=1)
)
输出:
a b
0 1 2
1 2 3
【讨论】: