pandas-groupby - 按日期计数的 Pandas 列
问题描述
我有一个具有日期时间索引的数据框。我想添加一个包含当天行数的列。
dff = pd.DataFrame(['red','red','blue'],
columns = ['colors'],
index = [pd.Timestamp('2019-09-19 14:03:20'),pd.Timestamp('2019-09-19 17:03:20'),pd.Timestamp('2019-09-20 14:03:20')])
colors
2019-09-19 14:03:20 red
2019-09-19 17:03:20 red
2019-09-20 14:03:20 blue
因此,发生在 2019 年 9 月 19 日的行的“计数”列应为 2,最后一行的计数列应为 1。
解决方案
这会临时创建一个仅包含日期的列,然后对所述列进行计数并将其放入实际数据框中称为计数的新列中。
dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')
这是粘贴到 IDE 和测试的全部内容:
import pandas as pd
dff = pd.DataFrame(['red','red','blue'],
columns = ['colors'],
index = [pd.Timestamp('2019-09-19 14:03:20'),pd.Timestamp('2019-09-19 17:03:20'),pd.Timestamp('2019-09-20 14:03:20')])
dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')
print(dff)
结果:
colors counts
2019-09-19 14:03:20 red 2
2019-09-19 17:03:20 red 2
2019-09-20 14:03:20 blue 1
推荐阅读
- java - 如何在spring boot中使用分页对存储库实体进行排序
- python - 以后有没有办法在你的代码中使用你的代码输出结果?
- glsl - 为什么纹理函数不知道?我正在使用处理
- python - 图表没有被清除,而是继续添加到 tkinter 中现有图表的下方
- java - 如何在 ivy 中强制执行 HTTPS?
- python-3.x - 如何解析 eml 文件并提取元数据信息
- reactjs - 使用 Gatsby + Bootstrap React + scss 模块设置卡片内容仅在悬停时可见
- time-series - 当基本事实接近于零时,LSTM 无法很好地预测
- vba - 通过 word vba 将电子邮件发送到 Outlook 时丢失格式
- android - 如何跨 Fragment 跟踪数据变化?