我有一个带有以下形式的时间序列的 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

最佳答案

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

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/

10-16 06:11