python - 使用 pandas 数据框列中的值更改 DateTime 对象的日期

标签 python pandas datetime dataframe

假设我有一个包含 10,000 多行的数据框,其中包含 DayMonth 列,其中 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并添加转换的Dayto_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/

相关文章:

python - 使用 Python 和 xml.etree.ElementTree 解析 XML 时遇到一些挑战

python - 使用 QSqlTableModel 在 QTreeView 上存储期间处理更改的行

python - pandas:仅当满足条件时才进行分组

javascript 日期和 python 日期时间对象

c# - 带空格的日期时间说明符

python - 如何在MRjob中获取输入文件的名称

python - Pandas:如何根据特定行值将值应用于一组行?

python - 如何从日期时间戳列中每 5 分钟取数据框中一列的平均值?

java - 序列化为日期时间、对象

python - 如何处理 "|as_crispy_field got passed an invalid or inexistent field"错误消息?