【发布时间】:2014-09-10 19:01:38
【问题描述】:
我有一个包含用户 ID、推文和 CreatedDates 的数据集。每个用户 ID 将在不同日期创建多条推文。我想找到推文的频率,我写了一个小计算,给出了每个用户 ID 每小时的推文数量。我使用 group by 来执行此操作,代码如下:
twitterDataFrame = twitterDataFrame.set_index(['CreatedAt'])
tweetsByEachUser = twitterDataFrame.groupby('UserID')
numberOfHoursBetweenFirstAndLastTweet = (tweetsByEachUser['CreatedAtForCalculations'].first() - tweetsByEachUser['CreatedAtForCalculations'].last()).astype('timedelta64[h]')
numberOfTweetsByTheUser = tweetsByEachUser.size()
frequency = numberOfTweetsByTheUser / numberOfHoursBetweenFirstAndLastTweet
当打印我得到的频率值时:
UserID
807095 5.629630
28785486 2.250000
134758540 8.333333
现在我需要回到我的大数据框 (twitterDataFrame) 并将这些值添加到正确的用户 ID 旁边。我怎么可能做到这一点?我想说
twitterDataFrame['frequency'] = the frequency corresponding to the UserID. e.g twitterDataFrame['UserID'] and the frequency value we got for that above.
但是我不确定我是如何做到这一点的。有谁知道我怎么能做到这一点?
【问题讨论】:
标签: python numpy pandas machine-learning scipy