首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按日期计数的Pandas列

按日期计数的Pandas列
EN

Stack Overflow用户
提问于 2019-10-17 04:06:31
回答 1查看 387关注 0票数 0

我有一个具有日期时间索引的dataframe。我想添加一个列,用于保存当天的行数。

代码语言:javascript
运行
复制
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-09-19的行的“count”列应该是2,最后一行的count列应该是1。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-17 04:44:26

这将临时创建一个仅包含日期的列,然后对所述列进行计数,并将其放入实际数据框中名为counts的新列中。

代码语言:javascript
运行
复制
dff["counts"] = dff.assign(date_col = lambda x: x.index.date).groupby(['date_col']).transform('count')

下面是要粘贴到IDE中并进行测试的全部内容:

代码语言:javascript
运行
复制
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)

结果是:

代码语言:javascript
运行
复制
                        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
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58420967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档