python - 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 中有一种简单的方法可以做到这一点,那么上述步骤就不需要了,你可以跳到这个
解决方案
您需要在下方获取该月的第一个日期。
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
推荐阅读
- apache-kafka - Apache Storm 和 kafka:如何获取 kafka spout 的消费者对象,以便记录其偏移量?
- opencv - OpenCV 或其他 CV 用于及时测量位置
- json - JSON 请求并不总是返回相同的响应类型(对象和数组)
- ios - Garmin Health API Oauth 1.0 iOS 响应错误
- android - 在 WebView 自定义所有错误页面
- android - 保存视频文件或流式传输到服务器之间的 Android 性能差异
- javascript - 如何将背景颜色更改为用户在 HTML 中输入的内容
- r - R - 平均大矩阵
- reactjs - 在另一个函数中访问当前状态
- emoji - 如何使用 RegExr 在字符串中的特定短语之后提取所有 18 个字符条目的列表?