python - 计算基于日期存储的给定文本文件中每个单词的出现次数

标签 python date text count

我目前有一个文本文件,其中包含某人发送消息时的时间戳和名称的行。请参见下文:Attachment

8/29/19, 2:03 PM - Michael: ...
8/29/19, 3:05 PM - Frank: ...
8/29/19, 4:01 PM - Tom: ...
8/29/19, 5:26 PM - Amy: ...
8/29/19, 6:46 PM - Tom: ...
8/29/19, 7:24 PM - Frank: ...
8/29/19, 9:55 PM - Amy: ...
8/30/19, 11:35 AM - Frank: ...
8/30/19, 12:39 PM - Johnny: ...
9/3/19, 1:18 AM - Frank: ...
9/3/19, 2:23 AM - Frank: ...
9/3/19, 3:16 PM - Frank: ...
9/3/19, 4:53 PM - Johnny: ...
9/4/19, 9:01 AM - Frank: ...
9/4/19, 11:45 AM - Frank: ...
9/4/19, 1:04 PM - Johnny: ...
9/4/19, 1:42 PM - Johnny: ...
9/4/19, 2:03 PM - Amy: ...
9/4/19, 4:12 PM - Johnny: ...
9/4/19, 6:27 PM - Amy: ...
9/4/19, 9:08 PM - Johnny: ...
.   .      .
.   .      .
.   .      .

我想根据python中的日期来统计一个人发送消息的次数。我想输出以下内容:Attachment

                 Michael  Frank   Tom    Amy     Johnny

      8/29/2019     1        2      2     2       0
      8/30/2019     0        1      0     0       1
      8/31/2019     0        0      0     0       0
      9/1/2019      0        0      0     0       0
      9/2/2019      0        0      0     0       0
      9/3/2019      0        3      0     0       1
      9/4/2019      0        2      0     2       4
      9/5/2019                  
      9/6/2019                  
      9/7/2019                  
      9/8/2019                  

第一次发帖,如果格式不正确,请见谅。非常感谢。

最佳答案

您可以使用 pandas 来帮助:

from io import StringIO
import pandas as pd

txtfile=StringIO("""8/29/19, 2:03 PM - Michael: ...
8/29/19, 3:05 PM - Frank: ...
8/29/19, 4:01 PM - Tom: ...
8/29/19, 5:26 PM - Amy: ...
8/29/19, 6:46 PM - Tom: ...
8/29/19, 7:24 PM - Frank: ...
8/29/19, 9:55 PM - Amy: ...
8/30/19, 11:35 AM - Frank: ...
8/30/19, 12:39 PM - Johnny: ...
9/3/19, 1:18 AM - Frank: ...
9/3/19, 2:23 AM - Frank: ...
9/3/19, 3:16 PM - Frank: ...
9/3/19, 4:53 PM - Johnny: ...
9/4/19, 9:01 AM - Frank: ...
9/4/19, 11:45 AM - Frank: ...
9/4/19, 1:04 PM - Johnny: ...
9/4/19, 1:42 PM - Johnny: ...
9/4/19, 2:03 PM - Amy: ...
9/4/19, 4:12 PM - Johnny: ...
9/4/19, 6:27 PM - Amy: ...
9/4/19, 9:08 PM - Johnny: ...""")

df = pd.read_csv(txtfile, sep=',|-|:', header=None, index_col=[0], engine='python')
df_out = df[3].str.get_dummies().sum(level=0)
print(df_out)

输出:

          Amy   Frank   Johnny   Michael   Tom
0                                             
8/29/19     2       2        0         1     2
8/30/19     0       1        1         0     0
9/3/19      0       3        1         0     0
9/4/19      2       2        4         0     0

关于python - 计算基于日期存储的给定文本文件中每个单词的出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59056693/

相关文章:

linux - BASH 将文本文件逐行转换为变量

python - 子进程调用的重定向输出丢失了吗?

python - 使用 Transformer 模型的多实例分类

python - 使用递归在python中绘制模式

python - 在 Windows 下检查 Python 脚本中管理员权限的跨平台方法?

objective-c - 获取 EKRecurrenceRule 中 startDate 和 endDate 之间的出现次数

javascript - 如何使用 javascript 检查范围之间的时间

Ruby - 日期范围(从本月的第一天到下个月的第一天)

python - 用Python提取科学论文信息?

linux - 使用 bash 为文本文件中的所有列添加双引号