Python 如何在没有小时/分钟/秒的情况下以datetime格式创建周列?
我遵循本教程是为了在pandas中创建一个week列:。如果你有一个没有小时、分钟和秒的约会,答案很好。但这对我不起作用。实际上,我甚至不需要答案的总结部分,只需要创建周专栏,这看起来很简单,但我找不到解决方案 我有一个带有产品id、价格和销售时间的数据集,如下所示:Python 如何在没有小时/分钟/秒的情况下以datetime格式创建周列?,python,pandas,group-by,Python,Pandas,Group By,我遵循本教程是为了在pandas中创建一个week列:。如果你有一个没有小时、分钟和秒的约会,答案很好。但这对我不起作用。实际上,我甚至不需要答案的总结部分,只需要创建周专栏,这看起来很简单,但我找不到解决方案 我有一个带有产品id、价格和销售时间的数据集,如下所示: sold_date id price 2020-01-01 20:00:01 A1 100 2020-01-02 10:03:01 B1 110 2020-
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
.
.
.
我只想添加一个带有创建周的datetime列。我正在努力做到这一点:
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
提前谢谢。很抱歉,数据问题,我无法共享我正在处理的表。您可以使用
访问时段
,然后获取时段的开始时间
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
根据您的
salled\u date
列的日期类型,可以简单地转换为pd.datetime
,如下所示:
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
.
.
.
df[“售出日期”]=pd.to\u日期时间(df[“售出日期”)
一旦出现这种情况,您可以通过执行以下操作来访问日期:
df[“出售日期”]=df[“出售日期”].dt.日期2020年2月3日是星期一,而不是2月2日。