2015-12-18 40 views
1

我非常新手Python的大熊貓用戶所以這可能是一個愚蠢的問題和大熊貓可能有簡單的方法來完成這個操作數據幀轉型

我的數據幀如下:

Name  Activity  Date 
Abc.   Run.   June 3 
Cde.   Walk.   Sept. 4 
Abc.   Run.   June 4 
Abc.   Run.   June 5 
Code.   Walk.   June 3 
Cde.   Run.   Sept 5 

我想將其轉換爲

Name run freq walk freq 
Abc.  3.    0 
Cde.  1.    1 
Code.  0.   1 

我該如何在熊貓中做到這一點?

+0

此操作的輸出是什麼? – 1974sb

回答

1

組列,獲得各計數,然後拆散結果。

df = pd.DataFrame({'Name': ['Abc.', 'Cde.', 'Abc.', 'Abc.', 'Code.', 'Cde.'], 
        'Activity': ['Run.', 'Walk.', 'Run.', 'Run.', 'Walk.', 'Run.'], 
        'Date': ['June 3', 'Sept. 4', 'June 4', 'June 5', 'June 3', 'Sept 5']}) 

>>> df.groupby(['Name', 'Activity']).count().unstack() 

      Date  
Activity Run. Walk. 
Name     
Abc.   3 NaN 
Cde.   1  1 
Code.  NaN  1 
+0

如果我只有兩列 - 名稱和活動,我會看到不同的行爲。有兩列,我沒有計數但是空的單元格。有什麼想法嗎? – 1974sb

+0

你在計算什麼?如果你的df只有名稱和活動,並且你使用這兩個來進行分組,那麼你想要計算什麼? – Alexander

+0

我想統計時間的數量,任何名字都做了一個活動。對於上面的例子,A​​bc跑了3次,沒有走路。 – 1974sb

1

你想組的名字和活動,並得到總和:

df.groupby(['Name', 'Activity']).sum()