python - 当输入限制为 'yyyy-mm' 时,如何使 pd.to_datetime 插入月份的最后一天而不是第一天?

标签 python pandas

我有一个 pandas 数据框,其时间序列形式如下:

Date  value
2020-01  1
2020-02  2
2020-03  3 

我想使用例如 pd.to_datetime 有效地将其变成日期时间系列。 .

这可以很容易地完成,如下所示如果您希望日期的插入日期部分为01

代码:

import pandas as pd
df = pd.DataFrame({'date': {0: '2020-01', 1: '2020-02', 2: '2020-03'},
                  'value': {0: 1, 1: 2, 2: 3}})
df['datetime']=pd.to_datetime(df['date'])
df

输出:

      date  value   datetime
0  2020-01      1 2020-01-01
1  2020-02      2 2020-02-01
2  2020-03      3 2020-03-01

如您所见,假设每月的首选日期是该月的第一天。但如何确保获得该月的最后一天呢?

所需输出:

      date  value   datetime
0  2020-01      1 2020-01-31
1  2020-02      2 2020-02-28
2  2020-03      3 2020-03-31

最佳答案

我认为 to_datetime 中不可能,可能的解决方案是转换为日期时间后添加值:

df['datetime']=pd.to_datetime(df['date']) + pd.offsets.MonthEnd()
print (df)
      date  value   datetime
0  2020-01      1 2020-01-31
1  2020-02      2 2020-02-29
2  2020-03      3 2020-03-31

关于python - 当输入限制为 'yyyy-mm' 时,如何使 pd.to_datetime 插入月份的最后一天而不是第一天?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59190755/

相关文章:

python - 从字典生成 pandas 数据框,其值是不同数量的字典列表

python - bool 索引的优雅方法,列表中具有可变/动态数量的值

python - 为索引连续 +/-1 的所有行过滤 pandas 数据帧

python - 尝试在python2.7中使用Selenium获取网站日历数据

python - 在 Django 中添加 ManyToManyField 时出错

python - 使用python写入html文件时遇到问题

python - 将列转换为 pandas.datetime 或时间序列

python - 检查 pandas df 的列名是否以 "name"开头,并根据现有空白拆分该列

Python zeep - 绑定(bind)名称以点 (.) 开头时标记名称无效

python - 在多种条件下合并来自多个数据帧的数据