2017-02-06 7 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 'Dates'라는 두 개의 열이 있다는 것을 깨닫지 못했습니다. 열이 이름이 없기 때문에 응답을 출력하는 것만 알았습니다. – 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 : 다른 결과를 산출하고 있습니다. 출력에서 ​​'날짜'라는 두 개의 열 모두가 혼동 스러웠습니다. – sn4ke