你可以使用以下方法在pandas中对一个日期进行加减。
方法1:在日期中添加天数
df['date_column'] + pd.Timedelta(days=5)
方法2:从日期中减去天数
df['date_column'] - pd.Timedelta(days=5)
下面的例子展示了如何在实践中用以下pandas DataFrame使用每种方法:
import pandas as pd
#create DataFrame
df = pd.DataFrame({'date': ['2022-10-01', '2022-10-23', '2022-10-30', '2022-11-05'],
'sales': [450, 567, 612, 701]})
#convert date column to datetime
df['date'] = pd.to_datetime(df['date'])
#view DataFrame
print(df)
date sales
0 2022-10-01 450
1 2022-10-23 567
2 2022-10-30 612
3 2022-11-05 701
例子1:在Pandas中为日期添加天数
下面的代码显示了如何创建一个新的列,在日期列中的值上增加5天:
#create new column that adds 5 days to value in date column
df['date_plus_five'] = df['date'] + pd.Timedelta(days=5)
#view updated DataFrame
print(df)
date sales date_plus_five
0 2022-10-01 450 2022-10-06
1 2022-10-23 567 2022-10-28
2 2022-10-30 612 2022-11-04
3 2022-11-05 701 2022-11-10
新列date_plus_five表示日期列中的值在每个值上增加了5天。
我们还可以使用dtypes函数来确认新列确实是一个日期列:
#check data type of each column
df.dtypes
date datetime64[ns]
sales int64
date_plus_five datetime64[ns]
dtype: object
date和date_plus_five两列都被识别为日期时间格式。
例2:在Pandas中从日期中减去天数
下面的代码展示了如何创建一个新的列,从date列的值中减去5天:
#create new column that subtracts five days from date
df['date_minus_five'] = df['date'] - pd.Timedelta(days=5)
#view updated DataFrame
print(df)
date sales date_minus_five
0 2022-10-01 450 2022-09-26
1 2022-10-23 567 2022-10-18
2 2022-10-30 612 2022-10-25
3 2022-11-05 701 2022-10-31
新列date_minus_five表示日期列中的值,从每个值中减去5天。