2017-07-16 88 views
1

相同的字符串我有一個像數據幀:如何計算no。在大熊貓數據幀

Company Date  Country 
ABC  2017-09-17 USA 
BCD  2017-09-16 USA 
ABC  2017-09-17 USA 
BCD  2017-09-16 USA 
BCD  2017-09-16 USA 

我希望得到一個結果DF爲:

Company No: of Days 
ABC  2 
BCD  3 

我該怎麼做呢?

回答

2

您可以使用value_countsrename_axisreset_index

df1 = df['Company'].value_counts() 
        .rename_axis('Company').reset_index(name='No: of Companies') 
print (df1) 
    Company No: of Companies 
0  BCD     3 
1  ABC     2 

另一種解決方案與groupby和聚合size,最後reset_index

df1 = df.groupby('Company').size().reset_index(name='No: of Companies') 
print (df1) 
    Company No: of Companies 
0  BCD     3 
1  ABC     2 

如果需要數Date列:

df1 = df['Date'].value_counts().rename_axis('Date').reset_index(name='No: of Days') 
print (df1) 
     Date No: of Days 
0 2017-09-16   3 
1 2017-09-17   2 

df1 = df.groupby('Date').size().reset_index(name='No: of Days') 
print (df1) 
     Date No: of Days 
0 2017-09-16   3 
1 2017-09-17   2 

編輯:

如果需要計數對DateCompany列:

df1 = df.groupby(['Date', 'Company']).size().reset_index(name='No: of Days per company') 
print (df1) 
     Date Company No: of Days per company 
0 2017-09-16  BCD      3 
1 2017-09-17  ABC      2 
+0

你是不是在所有使用 '日期' 列? – wingsforever

+0

@MohanRaj - 我爲'date'列添加解決方案,但輸出不同。 – jezrael

+0

我只想要一個只有2列的數據框 - 公司和日期 – wingsforever