如何在Python中向列添加8个月

2024-10-01 22:27:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我在数据帧中有一个列“CropYear”,我想在其中添加8个月(即,该列中的每个datetime值都添加8个月)。然后我想从“DateList”列中减去该列。我可以自己完成这两件事中的任何一件,但我一辈子都不知道如何在不破坏代码的情况下同时完成这两件事

df2["CropYear"] = pd.to_datetime(df2['CropYear'], format="%Y",  errors='coerce')

eight_mon_rel = relativedelta(months=8)

df2["CropYear"] = df2["CropYear"] + eight_mon_rel

HA = df2.DateListed - df2.CropYear

以下是dataframe的屏幕截图供参考: df2

目前,我从这段代码得到的结果是

TypeError: unsupported operand type(s) for +: 'DatetimeArray' and 'relativedelta'

Tags: to数据代码formatdatetime情况两件事rel
1条回答
网友
1楼 · 发布于 2024-10-01 22:27:48

我是新来的,如果我误解了你的问题,我向你道歉,但这可能是你想要做的

import datetime as dt
import pandas as pd
from pandas.core.frame import DataFrame
from pandas.tseries.offsets import DateOffset

#reading in your example data
original_data = pd.read_excel('Data_Example_Original.xlsx', sheet_name='Sheet1')

working_df = DataFrame(original_data)

add_time = list(working_df['CropYear'] + DateOffset(months=8))

working_df['AdjCropYear'] = add_time
working_df['DaysBetween'] = (working_df['DateListed'] - working_df['AdjCropYear']).dt.days
working_df.to_excel('results.xlsx')

相关问题 更多 >

    热门问题