2017-02-06 92 views
1

做了一些搜索,但沒有得到所需的結果,它是按日期分組數據和計算頻率。我能夠做到這一點與聚合,但我不知道如何創建一個新的列與結果,謝謝。pandas groupby和聚合到新列

數據文件:

Domain Dates 
twitter.com 2016-08-08 
google.com 2016-08-09 
apple.com 2016-08-09 
linkedin.com 2016-08-09 
microsoft.com 2016-08-09 
slack.com 2016-08-12 
instagram.com 2016-08-12 
ibm.com 2016-08-12 

代碼

import pandas as pd 
import matplotlib.pyplot as plt 
import datetime 
import numpy as np 

df = pd.read_csv('domains.tsv', sep='\t') 
df = df.groupby([pd.to_datetime(df.Dates).dt.date]).agg({'Dates':'size'}) 
print(df) 

產生

  Dates 
Dates 
2016-08-08  1 
2016-08-09  4 
2016-08-12  3 

理想情況下,我想數列是 '計數',然後我會救一個新的csv。

+0

你到底在找什麼?你在問如何重新命名一個專欄? –

+0

@ juanpa.arrivillaga我沒有意識到有兩列都是'日期',我認爲它只是輸出的迴應,因爲列沒有名稱 – sn4ke

回答

1
import pandas as pd 


df = pd.read_csv('domains.tsv', sep='\t') 
counter = df.groupby('Dates').count().rename(columns={'Domain': 'count'}) 
counter.to_csv('count.csv') 

您將獲得count.csv包括對當前的目錄下面的結果。

Dates,count 
2016-08-08,1 
2016-08-09,4 
2016-08-12,3 
0
df['count'] = df.groupby(['Dates']).transform('count') 
+0

看到,起初這是我認爲OP想要的。現在我不確定。 –

+0

@ juanpa.arrivillaga我認爲他很困惑,他實際上輸出的東西已經是計數了。 –

+0

@ A.Kot會產生不同的結果,我想我被輸出中名爲'Dates'的兩列混淆了 – sn4ke