【发布时间】:2021-08-09 15:27:03
【问题描述】:
我有一个时间序列数据框,其中日期为索引,到期天数为“DTM”值。用实际日期替换这些 DTM 值的最佳方法是什么(将现有值添加到日期索引行日期)?
例如:将 20 天添加到 1990-01-02 = 1990-01-22 作为第一行/第一列值。
谢谢!
【问题讨论】:
标签: python pandas dataframe date
我有一个时间序列数据框,其中日期为索引,到期天数为“DTM”值。用实际日期替换这些 DTM 值的最佳方法是什么(将现有值添加到日期索引行日期)?
例如:将 20 天添加到 1990-01-02 = 1990-01-22 作为第一行/第一列值。
谢谢!
【问题讨论】:
标签: python pandas dataframe date
创建与您发布的类似的数据框:
import pandas as pd
array = {'Date': ['1990-01-02', '1990-01-03'],
'CL1': [20,19],
'CL2': [49,48], 'CL3': [77,76]}
df = pd.DataFrame(array)
df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d')
df = df.set_index('Date')
df
这给出了:
CL1 CL2 CL3
Date
1990-01-02 20 49 77
1990-01-03 19 48 76
现在这是您所追求的解决方案:
from datetime import timedelta
for col in df.columns:
df[col] = df.index + pd.to_timedelta(df[col], unit='d')
df
这给出了:
CL1 CL2 CL3
Date
1990-01-02 1990-01-22 1990-02-20 1990-03-20
1990-01-03 1990-01-22 1990-02-20 1990-03-20
【讨论】: