计数独特的话和平均时间在Pandas

qaxu7uf2  于 2023-01-04  发布在  其他
关注(0)|答案(1)|浏览(181)

我正在用Pandas分析Twitter API中的一些文本,最终会可视化。
参考我的数据集df.head()为:

Count   User    Time    Tweet
0   0   x   2022    ✔️Nécessité de maintien d’une filière 🇪🇺 dynam...
1   1   x   2022    Échanges approfondis à #Dakar avec le Premier ...
2   2   x   2022    ✔️Approvisionnement en #céréales & #engrai...
3   3   x   2022    Aujourd’hui à Tambacounda, à l’Est du Sénégal,...
4   4   x   2022    Working hard since 2019 to reinforce EU #auton...

我希望返回非重复单词计数以及使用该单词的tweet的平均时间。
现在,我已经使用df.Tweet.str.split(expand=True).stack().value_counts()获得了数据集的非重复字数。
这很有用,可返回:

the                        1505
de                         1500
to                         1168
RT                          931
of                          906
                           ... 
africain,                     1
langue                        1
Félicitations!                1

Length: 18071, dtype: int64

但是,我还想分析一段时间内的文本使用情况。

我不是很有经验,所以我想知道是否有一种方法可以使用像df.groupby()这样的函数来按时间对结果进行排序,或者,是否有一种方法可以修改我的原始函数,在结果中添加一个包含平均时间的列?

kupeojn6

kupeojn61#

我将使用str.extractall获取单词,join获取时间,然后执行groupby.value_counts获取每年的计数:

out = (df['Tweet']
 .str.extractall('(\S+)')
 .droplevel('match')
 .join(df['Time'])
 .groupby('Time')[0].value_counts()
)
  • 注意:如果要排除单词中的非字母/数字,请使用(\w+)代替(\S+)。*

输出:

Time  0                  
2022  à                      3
      #Dakar                 1
      #auton...              1
      #céréales              1
      #engrai...             1
      &                  1
      ...                    1
...

相关问题