2017-08-10 91 views
3

我很新的Python到大熊貓圖書館,我一直在試圖拼湊如何採取一個數據幀像這樣如何使用熊貓來計算數據框中每個日期的值?

'Date' 'Color' 
0 '05-10-2017' 'Red' 
1 '05-10-2017' 'Green' 
2 '05-10-2017' 'Blue' 
3 '05-10-2017' 'Red' 
4 '05-10-2017' 'Blue' 
5 '05-11-2017' 'Red' 
6 '05-11-2017' 'Green' 
7 '05-11-2017' 'Red' 
8 '05-11-2017' 'Green' 
9 '05-11-2017' 'Blue' 
10 '05-11-2017' 'Blue' 
11 '05-11-2017' 'Red' 
12 '05-11-2017' 'Blue' 
13 '05-11-2017' 'Blue' 
14 '05-12-2017' 'Green' 
15 '05-12-2017' 'Blue' 
16 '05-12-2017' 'Red' 
17 '05-12-2017' 'Blue' 
18 '05-12-2017' 'Blue' 

和輸出一個具有獨特的日期作爲索引,顏色爲列頭每天像這樣的價值數:

'Date'  'Red' 'Green' 'Blue' 
'05-10-2017'  2  1  2 
'05-11-2017'  3  2  3 
'05-12-2017'  1  1  3 

我一直在努力通過這個網站尋找過去兩天試圖拼湊的方式來實現這一點,到目前爲止,我只能夠產生唯一日期索引。我在使用value_counts時遇到了一些麻煩。如果有人能夠向我展示一種方法,或者如果已經得到回答,請指出我的方向正確,我將不勝感激。我已經耗盡了我的搜索能力,並最終決定在這裏問我的第一個問題。如果我是個白癡,請溫柔。

+0

'df.groupby([ '日期', '顏色'])Color.count()出棧(。 )' –

回答

5

您可以使用:

groupby + size爲aggregting和unstack的重塑:

df1 = df.groupby(["'Date'","'Color'"]).size().unstack(fill_value=0) 
print (df1) 
'Color'  'Blue' 'Green' 'Red' 
'Date'        
'05-10-2017'  2  1  2 
'05-11-2017'  4  2  3 
'05-12-2017'  3  1  1 

2.

pivot_table解決方案:

df1 = df.pivot_table(index="'Date'",columns="'Color'", aggfunc='size') 
print (df1) 
'Color'  'Blue' 'Green' 'Red' 
'Date'        
'05-10-2017'  2  1  2 
'05-11-2017'  4  2  3 
'05-12-2017'  3  1  1 

3.

crosstab溶液,slowier:

df1 = pd.crosstab(df["'Date'"],df["'Color'"]) 
print (df1) 
'Color'  'Blue' 'Green' 'Red' 
'Date'        
'05-10-2017'  2  1  2 
'05-11-2017'  4  2  3 
'05-12-2017'  3  1  1 
+0

非常感謝!它的工作,現在我必須教自己爲什麼。 –

+0

我爲你添加一些鏈接,給我一秒鐘 – jezrael

相關問題