熊猫-更改日期列中的每个日期

时间:2018-08-03 14:49:35

标签: python pandas dataframe

(您可以假定日期列为datetime)

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

['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分组后的金额相加,最终输出包含每个日期作为本月的第一天。我想到达这里的一种简单方法是将每个日期首先更改为该月的第一天,但​​是如果有一种简单的方法可以在熊猫中做到这一点,则不需要上述步骤,您可以跳过此步骤< / p>

1 个答案:

答案 0 :(得分:2)

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

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