根据您要解决的任务,我可以看到此数据集的两个选项。
- 如您在示例中所示,计算每天文本字段出现的次数,与文本字段的值无关。
- 或者,统计文本字段中每个唯一值每天出现的次数。然后,您将为文本字段的每个可能值设置一列,如果这些值是纯粹的分类值,这可能更有意义。
首先要做的事情:
import pandas as pd
df = pd.DataFrame(data={'Date':['2018-01-01','2018-01-01','2018-01-01', '2018-01-02', '2018-01-03'], 'Text':['A','B','C','A','A']})
df['Date'] = pd.to_datetime(df['Date']) #convert to datetime type if not already done
Date Text
0 2018-01-01 A
1 2018-01-01 B
2 2018-01-01 C
3 2018-01-02 A
4 2018-01-03 A
然后是选项一:
df = df.groupby('Date').count()
Text
Date
2018-01-01 3
2018-01-02 1
2018-01-03 1
对于选项二:
df[df['Text'].unique()] = pd.get_dummies(df['Text'])
df = df.drop('Text', axis=1)
df = df.groupby('Date').sum()
A B C
Date
2018-01-01 1 1 1
2018-01-02 1 0 0
2018-01-03 1 0 0
get_dummies 函数将为文本字段的每个可能值创建一列。然后,每一列都是数据帧每一行的布尔指示符,告诉我们在这一行中出现了 Text 字段的哪个值。然后,我们可以通过 Date 字段简单地使用 groupby 进行总和聚合。
如果你不熟悉groupby和聚合操作的使用,我建议你先阅读this guide。