我自己解决了这个问题,这是我的解决方案。
import operator result = tweetdata.groupby('t_date').first(); allFreq={} for date in range(0,result.shape(0)): df=tweetdata[tweetdata.t_date==result.index[date]].ix[:,['t_date','tweets']] #type(tweetdata.loc[1,'t_date']) A='' for i in df.index: A=A+' '+df.ix[i,1] text_file = open("A.txt", "w+") text_file.write("%s" % A) text_file.close() with open('A.txt') as f: words = f.read() wordfreq = {} for word in words.replace(',', ' ').split(): wordfreq[word] = wordfreq.setdefault(word, 0) + 1 x = wordfreq sorted_x = sorted(x.items(), key=operator.itemgetter(1),reverse=True) sorted_x allFreq[result.index[date]]=sorted_x >>>allFreq['2012-06-01'] >>> [('the', 248), ('to', 201), ('of', 143), ('a', 137), ('in', 127), ('and', 107), ('for', 100), ('you', 95), ('is', 93), ('I', 81), ...]
我根据随机数据创建了一个数据框,但它应该让你知道如何从这里开始。我把计数设置为 D 对于日历日,您可以更改 抵消 如你所愿
D
import pandas as pd import io # only needed to import sample data data = """ date tweet_id tweet 2015-10-31 50230 tweet_1 2015-10-31 48646 tweet_2 2015-10-31 48748 tweet_3 2015-10-31 46992 tweet_4 2015-11-01 46491 tweet_5 2015-11-01 45347 tweet_6 2015-11-01 45681 tweet_7 2015-11-01 46430 tweet_8 """ df = pd.read_csv(io.StringIO(data), delimiter='\s+', \ index_col=False, parse_dates = ['date']) # Tweet count starts here df_count = df.set_index('date').resample('D', how='count') # 'D' for offset calendar day df_count = df_count.drop(df_count.columns[1:], axis=1) df_count.columns = ['count'] print(df)
只是为了检查你的原件 df 好像
df
date tweet_id tweet 0 2015-10-31 50230 tweet_1 1 2015-10-31 48646 tweet_2 2 2015-10-31 48748 tweet_3 3 2015-10-31 46992 tweet_4 4 2015-11-01 46491 tweet_5 5 2015-11-01 45347 tweet_6 6 2015-11-01 45681 tweet_7 7 2015-11-01 46430 tweet_8
我们用完之后 resample
resample
print(df_count) count date 2015-10-31 4 2015-11-01 4