如何在 pandas 中添加和减去日期的月份
您可以使用以下方法在 pandas 中添加和减去日期中的月份:
方法 1:添加迄今为止的月份
from pandas. tseries . offsets import DateOffset
df[' date_column '] + DateOffset(months= 3 )
方法 2:从日期中减去月份
from pandas. tseries . offsets import DateOffset
df[' date_column '] - DateOffset(months= 3 )
以下示例展示了如何在实践中使用以下 pandas DataFrame 的每种方法:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start='1/5/2022', freq='M', periods= 10 ),
' sales ': [6, 8, 9, 5, 4, 8, 8, 3, 5, 9]})
#view DataFrame
print (df)
dirty dates
0 2022-01-31 6
1 2022-02-28 8
2 2022-03-31 9
3 2022-04-30 5
4 2022-05-31 4
5 2022-06-30 8
6 2022-07-31 8
7 2022-08-31 3
8 2022-09-30 5
9 2022-10-31 9
示例 1:在 Pandas 中添加迄今为止的月份
以下代码演示如何创建一个新列,将 3 个月添加到日期列值:
from pandas. tseries . offsets import DateOffset
#create new column that adds 3 months to date
df[' date_plus3 '] = df. date + DateOffset(months= 3 )
#view updated DataFrame
print (df)
date sales date_plus3
0 2022-01-31 6 2022-04-30
1 2022-02-28 8 2022-05-28
2 2022-03-31 9 2022-06-30
3 2022-04-30 5 2022-07-30
4 2022-05-31 4 2022-08-31
5 2022-06-30 8 2022-09-30
6 2022-07-31 8 2022-10-31
7 2022-08-31 3 2022-11-30
8 2022-09-30 5 2022-12-30
9 2022-10-31 9 2023-01-31
新的date_plus3列表示日期列中的值,每个值附加三个月。
示例 2:从 Pandas 中的日期减去月份
以下代码演示如何创建一个从日期列值中减去 3 个月的新列:
from pandas. tseries . offsets import DateOffset
#create new column that subtracts 3 months from date
df[' date_minus3 '] = df. date + DateOffset(months= 3 )
#view updated DataFrame
print (df)
date sales date_minus3
0 2022-01-31 6 2021-10-31
1 2022-02-28 8 2021-11-28
2 2022-03-31 9 2021-12-31
3 2022-04-30 5 2022-01-30
4 2022-05-31 4 2022-02-28
5 2022-06-30 8 2022-03-30
6 2022-07-31 8 2022-04-30
7 2022-08-31 3 2022-05-31
8 2022-09-30 5 2022-06-30
9 2022-10-31 9 2022-07-31
新的date_minus3列表示日期列中的值,每个值减去三个月。
其他资源
以下教程解释了如何在 pandas 中执行其他常见操作:
如何将 Pandas 中的列转换为日期时间
如何将 DateTime 转换为 Pandas 中的日期
如何从 Pandas 中的日期中提取月份