(您可以假设日期列是日期时间)
这可能与问题相关,但我还有一个具有以下值的日期列表:
['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 中有一种简单的方法可以做到这一点,则不需要上述步骤,您可以跳到此
最佳答案
您需要通过以下方式获取该月的第一个日期。
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
关于python - Pandas - 更改日期列中的每个日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51675198/