我目前有一个文本文件,其中包含某人发送消息时的时间戳和名称的行。请参见下文: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/