2017-04-18 3 views
5

Angenommen, ich habe folgendes DatenrahmenPandas: Rückkehr Anzahl der Vorkommen von Datum

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 

Ich brauche einen zweiten Datenrahmen zurückzugeben, die die Anzahl der Vorkommen von A und B für Tag auflistet.

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

Ich habe das Gefühl, diese "groupby" beinhaltet, aber ich weiß nicht genug über sie es in das Format zu erhalten oben^

Antwort

4

Verwenden pivot_table Methode:

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 

oder 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

können Sie die pandas in t gebaut verwenden o do this pd.crosstab

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

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

Ich werde dorthin kommen ..... eines Tages! – Vaishali

Verwandte Themen