假设我有一个包含 10,000 多行的数据框,其中包含 Day
和 Month
列,其中 Month
是日期时间对象。 Month
对象中的“day”值不正确,因此我想将其替换为 Day
列中的相应值。我该如何去做呢?
import datetime as dt
df = pd.DataFrame({
'Month': [dt.date(2017,9,1),dt.date(2017,11,1),dt.date(2017,9,1)],
'Day': [7, 21,14],
})
Day Month
7 2017-09-01
21 2017-11-01
14 2017-09-01
所以我希望最终结果如下所示:
Day Month New_Col
7 2017-09-01 2017-09-07
21 2017-11-01 2017-11-21
14 2017-09-01 2017-09-14
最佳答案
将列 Month
转换为日期时间 to_datetime
并添加转换的Day
列to_timedelta
s:
df['New_Col'] = pd.to_datetime(df['Month']) + pd.to_timedelta(df['Day'], unit='d')
print (df)
Month Day New_Col
0 2017-09-01 7 2017-09-08
1 2017-11-01 21 2017-11-22
2 2017-09-01 14 2017-09-15
如果需要减去一天:
df['New_Col'] = pd.to_datetime(df['Month']) + pd.to_timedelta(df['Day'] - 1, unit='d')
print (df)
Month Day New_Col
0 2017-09-01 7 2017-09-07
1 2017-11-01 21 2017-11-21
2 2017-09-01 14 2017-09-14
关于python - 使用 pandas 数据框列中的值更改 DateTime 对象的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54609307/