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