2017-10-10 101 views
1

假設我有以下數據幀DF:大熊貓行列與其他列

type cat val 
a  x  3 
a  x1  1 
a  x2  3.5 
b  x3  7 
b  x4  2 
c  x1  8 

現在我試圖獲取類似下面:

type cat1 val1 cat2 val2 cat3 val3 cat4 val4 
a  x  3  x2  3.5  x2  7  nan nan 
b  x3  7  nan nan  nan nan x4  2 
c  x1  8  nan nan  nan nan nan nan 

所以基本上我已經創建了04新根據'cat'的唯一值創建列,然後相應地將'val'賦值給單元格,並且新表由'type'索引。

這是大熊貓數據透視表可以提供什麼幫助嗎?

在此先感謝。

乾杯, 湯姆

回答

0

我建議使用pd.pivot_table()

# make dataframe 
df = pd.DataFrame({'type' : ['a']*3 + ['b']*2 + ['c'], 
        'cat' : ['x', 'x1', 'x2', 'x3', 'x4', 'x1'], 
        'val' : [3, 1, 3.5, 7, 2, 8]}) 

# pivot 
df.pivot_table(index = 'type', 
       columns = 'cat', 
       values = 'val') 

pivot

它沒有列就像你有他們,但它能夠減少尺寸和數量NaN s。

希望這會有所幫助!