我需要从某人的Twitter提要(不是流媒体)中收集某些信息: 1)星期几发布了对另一条推文的回复 2)发布回复的那天的小时
我在做什么:
1)获取所需信息 2)将该信息附加到DataFrame 3)Groupby"星期几" 4)每天过去并打印一份回复量的直方图。
import datetime
import pandas as pd
from collections import Counter
celebrity = '@elonmusk'
def weekdayf(weekday):
return{
0: 'Monday',
1: 'Tuesday',
2: 'Wednesday',
3: 'Thursday',
4: 'Friday',
5: 'Saturday',
6: 'Sunday'
}[weekday]
data = {'Day of the week': [],
'Hour': []
}
df = pd.DataFrame(data)
for status in tweepy.Cursor(api.user_timeline, id = celebrity).items(150):
#find responses
if status.in_reply_to_status_id != None:
data = {'Hour': [status.created_at.time().hour],
'Day of the week': [weekdayf(status.created_at.weekday())]
}
df1 = pd.DataFrame(data)
df = df.append(df1, ignore_index = True)
df = df.groupby(by = "Day of the week", as_index = True)
我的问题是:
I)我的groupby不起作用,我不知道为什么。我以前用过这个方法,没有问题。我该如何解决?
II)我的朋友说追加效率非常低。因此,我必须首先将所有的repplies放在数据帧中。 他的建议是:
tweets = [x.__dict__ for x in tweepy.Cursor(api.user_timeline, id = celebrity).items(10)
if x.in_reply_to_status_id]
追加最佳方式吗?我没有弄清楚如何将它全部放在DataFrame中。推文是一个列表。
非常感谢你的帮助。