2016-09-08 22 views
0

我試圖在熊貓列中使用唯一值來生成一組新的列。下面是一個例子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逆。

回答

3

使用DataFrame.pivot

# 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 
+0

固體答案一如既往。但是我大多對'df.columns.map('_'。join)''感到興奮 – piRSquared

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