首页 > 解决方案 > Pandas - 更改日期列中的每个日期

问题描述

(您可以假设日期列是日期时间)

这可能与问题有关,但我也有一个包含以下值的日期列表:

['2018-01-01', '2018-02-01', '2018-03-01', 
'2018-04-01', '2018-05-01']

我有下表:

date         arb1      arb2      amount
2018-01-02   Z         F         5
2018-01-03   G         H         10
2018-02-04   V         T         51
2018-03-03   R         S         54

我想要这个输出,其中每个日期都设置为相应月份的第一天:

date         arb1      arb2      amount
2018-01-01   Z         F         5
2018-01-01   G         H         10
2018-02-01   V         T         51
2018-03-01   R         S         54

奖励(非必需):我实际上要做的是在按日期(月份)、arb1 和 arb2 分组后将金额相加,最终输出将每个日期作为本月的第一天。我认为到达这里的一个简单方法是首先将每个日期更改为每月的第一天,但​​是如果在 pandas 中有一种简单的方法可以做到这一点,那么上述步骤就不需要了,你可以跳到这个

标签: pythonpandasdataframe

解决方案


您需要在下方获取该月的第一个日期。

df['date'] = df['date'].dt.to_period('M').dt.to_timestamp()

输出:

        date arb1 arb2  amount
0 2018-02-01    Z    F       5
1 2018-01-01    G    H      10
2 2018-02-01    V    T      51
3 2018-03-01    R    S      54

推荐阅读