【发布时间】:2015-11-19 00:42:14
【问题描述】:
这是我之前问过的question 的延续,当时得到了合适的答案。但是现在我的问题不同了,给定的答案不再(完全)适用。
我收集了大量 Twitter 消息,我想对其进行一些统计分析。部分数据框如下所示:
user.id user.screen_name user.followers_count text
Jim JimTHEbest 14 blahbla
Jim JIMisCOOL 15 blebla
Sarah Sarah123 33 blaat
Sarah Sarah123 33 bla
Peter PeterOnline 9 blabla
user.id 永远不会改变,它是 Twitter 帐户的标识符。
user.screen_name 为 twitter 帐户提供的名称,可以随时间变化。
user.followers_count 帐户有多少关注者,可能会随着时间而变化。
text twitter 消息,每行代表 1 条 twitter 消息及其元数据。
我想做的是计算我的数据框中每个推特用户的推文频率,并将其与我已有的数据结合起来。所以我得到这样的东西:
user.id user.screen_name user.followers_count count
Jim JIMisCOOL 15 2
Sarah Sarah123 33 2
Peter PeterOnline 9 1
我的数据集中每个 twitter 用户都有 1 行的数据框,显示他们的推文计数以及最后一个 screen_name 和 follower_count。
我认为我应该做的是首先进行“计数”操作,然后 pd.merge 将该结果与我的原始数据框的一部分。在 pandas 文档的帮助下尝试合并并没有让我走得太远,主要是无休止地重复重复数据行。任何帮助将不胜感激!
count部分我做的如下:
df[['name', 'text']].groupby(['name']).size().reset_index(name='count')
【问题讨论】:
-
如果您希望最终数据中的每个 'user.id' 唯一值都有一行,如果用户有多行,您希望保留哪一行?
-
每一行都是一条推文,随着时间的推移收集起来。因此,对于这些指标,我想要列表中的最新条目。