我有一个数据帧,它有tweet_text
、date
、time
和sentiments
列,这些列有以下值
tweet_text date time sentiments
tweet1 2021-08-16 11:53:37 positive
tweet2 2021-08-16 02:44:04 neutral
tweet3 2021-08-16 02:44:02 neutral
tweet4 2021-08-16 02:47:02 neutral
tweet5 2021-08-16 02:50:00 negative
tweet6 2021-08-17 05:20:46 positive
tweet7 2021-08-17 06:01:00 positive
tweet8 2021:08:17 06:20:00 positive
tweet9 2021:08:17 07:05:00 negative
tweet10 2021:08:17 07:20:21 negative
可以使用
df = pd.DataFrame({'tweet_text': ['tweet1', 'tweet2', 'tweet3', 'tweet4', 'tweet5', 'tweet6', 'tweet7, 'tweet8', 'tweet9', 'tweet10'],
'date': [2021-08-16, 2021-08-16, 2021-08-16, 2021-08-16, 2021-08-16, 2021-08-17, 2021-08-17, 2021-08-17,2021-08-17, 2021-08-17],
'time': [11:53:37, 02:44:04, 02:44:02, 02:47:02'02:50:00', '05:20:46' '06:01:00', '06:20:00', '07:05:00', '07:20:21'],
'sentiments': ['positive', 'neutral', 'neutral', 'neutral', 'negative', 'positive', 'positive', 'positive', 'negative', 'negative']})
我需要根据每天每小时的多数票来计算情绪。我需要两个不同的数据帧作为输出。一天的多数投票,如
Date Majority_Sentiment
2021-08-16 neutral
2021-08-17 positive
每小时多数投票的第二个数据帧,可以如下所示
Date Hour Majority_Sentiment
2021-08-16 11:00 positive
2021-08-16 02:00 neutral
2021-08-17 05:00 positive
2021:08:17 06:00 positive
2021:08:17 07:00 negative
我知道df.mode()
可以用来计算它,但是我如何在我的场景中实现它呢?多谢各位
将^{} 与lambda函数一起用于^{} ,因为可能返回的多个值仅由^{} 首先选择:
对于第二个输出,将} 转换为自定义格式
time
列转换为日期时间,然后通过^{HH:00
,并通过-columndate
和time
系列进行分组:另一个类似的解决方案是分配返回时间:
显示结果:
相关问题 更多 >
编程相关推荐