2017-04-18 230 views
5

出現回數假設我有以下的數據幀熊貓:按日期

dic = {"Date": ["04-Jan-16", "04-Jan-16", "04-Jan-16", "05-Jan-16", "05-Jan-16"], 
     "Col": ['A', 'A', 'B', 'A', 'B']} 

df = pd.DataFrame(dic) 

df 

    Col  Date 
0 A 04-Jan-16 
1 A 04-Jan-16 
2 B 04-Jan-16 
3 A 05-Jan-16 
4 B 05-Jan-16 

我需要返回一個列出的出現和B天數的第二數據幀。即

  A B 
Date   
04-Jan-16 2 1 
05-Jan-16 1 1 

我有一種感覺,這涉及到「GROUPBY」,但我不知道有足夠的瞭解它進入它上面的格式^

回答

4

使用pivot_table方法:

In [116]: df.pivot_table(index='Date', columns='Col', aggfunc='size') \ 
      .rename_axis(None, axis=1) 
Out[116]: 
      A B 
Date 
04-Jan-16 2 1 
05-Jan-16 1 1 

unstack()

In [121]: df.groupby(['Date', 'Col']).size().unstack('Col') 
Out[121]: 
Col  A B 
Date 
04-Jan-16 2 1 
05-Jan-16 1 1 
4

您可以使用pandas內置t o做到這一點pd.crosstab

pd.crosstab(df.Date, df.Col) 

Col  A B 
Date   
04-Jan-16 2 1 
05-Jan-16 1 1 
+0

我會到那裏.....有一天! – Vaishali