为了在熊猫:group by week in pandas中创建一个周专栏,我遵循了本教程。如果你有一个没有几个小时、几分钟和几秒的约会,答案就会很好。但这对我没用。实际上,我甚至不需要答案的总结部分,只需要创建一周专栏,这看起来很简单,但我找不到解决方案。
我有一个数据集,上面有产品的id、价格和销售时间,如下所示:
sold_date id price
2020-01-01 20:00:01 A1 100
2020-01-02 10:03:01 B1 110
2020-01-02 11:10:01 B1 130
2020-02-03 22:20:01 A1 110
2020-02-04 23:05:01 A1 140
2020-02-04 21:00:05 B1 190
.
.
.我只想添加一个日期时间列与创建周。我在努力做到这一点:
week_sold id price
2019-12-30 A1 100
2019-12-30 B1 110
2019-12-30 B1 130
2020-02-02 A1 110
2020-02-02 A1 140
2020-02-02 B1 190
.
.
.我也可以像2019-12-30 : 00:00:000那样工作。我下面的链接的解决方案的问题是,它不考虑时间,所以当您创建一个周列时,只需减去7天,就可以得到每一行的不同值。对于前两行,2019-12-30 20:00:01和2019-12-30 10:03:01。
提前谢谢。很抱歉我的数据,我不能分享我正在处理的表格。
发布于 2021-06-07 20:18:33
您可以使用to_period,然后获取句点的start_time。
df['week_sold'] = df['sold_date'].dt.to_period('W').dt.start_time
sold_date id price week_sold
0 2020-01-01 20:00:01 A1 100 2019-12-30
1 2020-01-02 10:03:01 B1 110 2019-12-30
2 2020-01-02 11:10:01 B1 130 2019-12-30
3 2020-02-03 22:20:01 A1 110 2020-02-03
4 2020-02-04 23:05:01 A1 140 2020-02-03
5 2020-02-04 21:00:05 B1 190 2020-02-03发布于 2021-06-07 20:19:36
根据您的sold_date列的日期类型,它可能很简单,只需转换为pd.datetime,如下所示:
df["sold_date"] = pd.to_datetime(df["sold_date"])
一旦出现这种情况,您就可以通过以下操作访问日期:
df["sold_date"] = df["sold_date"].dt.date
https://stackoverflow.com/questions/67878147
复制相似问题