Pandas分食馆

2024-09-29 01:34:28 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含用户ID、Tweets和createdDate的数据集。每个UserID将在不同的日期创建多个tweet。我想找到tweets的频率,我写了一个小计算,它给出了每个用户id每小时的tweet数量。我使用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

当打印频率值时,我得到:

^{pr2}$

现在我需要回到我的大数据框架(twitterDataFrame)中,在正确的userid旁边添加这些值。我怎么可能做到呢?我想说

twitterDataFrame['frequency'] = the frequency corresponding to the UserID. e.g twitterDataFrame['UserID'] and the frequency value we got for that above. 

但是我不知道我是怎么做到的。有人知道我怎么做到的吗?在


Tags: the数据用户idtweetstweet频率frequency
1条回答
网友
1楼 · 发布于 2024-09-29 01:34:28

您可以对您创建的frequency对象使用join操作,也可以在一个阶段中执行:

get_freq = lambda ts: (ts.last() - ts.first()).astype('timedelta64[h]') / len(ts)
twitterDataFrame['frequency'] = twitterDataFrame.groupby('UserID')['CreatedAtForCalculations'].transform(get_freq)

相关问题 更多 >