进行了一些搜索,但没有产生所需的结果,即按日期对数据进行分组并计算频率。我能用聚合做到这一点,但我不知道如何用结果创建一个新列,谢谢。
文件中的数据:
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
理想情况下,我希望count列为'count',然后我将保存为新的csv。
答案 0 :(得分:2)
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
答案 1 :(得分:0)
df['count'] = df.groupby(['Dates']).transform('count')