我正在尝试在pandas列中使用唯一值来生成一组新列。这是一个例子DataFrame
:
meas1 meas2 side newindex
0 1 3 L 0
1 2 4 R 0
2 6 8 L 1
3 7 9 R 1
我想将我的测量列与我的关键列“相乘”以生成DafaFrame
,如下所示:
meas1_L meas1_R meas2_L meas2_R
0 1 2 3 4
1 6 7 8 9
请注意,它基本上与this question相反。
答案 0 :(得分:4)
# Perform the pivot.
df = df.pivot(index='newindex', columns='side').rename_axis(None)
# Format the columns.
df.columns = df.columns.map('_'.join)
结果输出:
meas1_L meas1_R meas2_L meas2_R
0 1 2 3 4
1 6 7 8 9
答案 1 :(得分:1)
使用groupby.prod
的另一种解决方案:
df = df.groupby(['side', 'newindex']).prod().unstack(level=0)
df.columns = ['_'.join(c[0::]) for c in df.columns]
meas1_L meas1_R meas2_L meas2_R
newindex
0 1 2 3 4
1 6 7 8 9