如何在Pandas中对日期进行加减法?

313 阅读2分钟

你可以使用以下方法在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

datedate_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天。