Python 获取每行的列datetime值总和的最大值

Python 获取每行的列datetime值总和的最大值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,我试图获取每行的列总和的最大值,并将最大值分配给一个新列 df['due_date'] = df.apply( lambda x: max(x['days_1'] + x['baseline_date'], x['days_2'] + x['baseline_date'], x['days_3'] + x['baseline_date']), axis=1) “df”看起来像 days_1

我试图获取每行的列总和的最大值,并将最大值分配给一个新列

df['due_date'] = df.apply(
        lambda x: max(x['days_1'] + x['baseline_date'],
                      x['days_2'] + x['baseline_date'],
                      x['days_3'] + x['baseline_date']), axis=1)
“df”看起来像

days_1    days_2    days_3    baseline_date
0         0         0         2018-01-01
12        0         0         2017_01-01
0         3         0         2016-01-01
0         0         4         2015-01-01
baseline\u date
属于
datetime
dtype
days\u 1/2/3
属于
int
类型

密码给了我

ValueError: ('Cannot add integral value to Timestamp without freq.', 'occurred at index 0')

我想知道如何获得
base\u line\u date
+
days1/2/3
获取的最大日期

您可以使用
axis=1

pd.to_timedelta(df.iloc[:,:3].max(1),'D')+pd.to_datetime(df.baseline_date)
Out[437]: 
0   2018-01-01
1   2017-01-13
2   2016-01-04
3   2015-01-05
dtype: datetime64[ns]

您可以使用轴=1执行
max

pd.to_timedelta(df.iloc[:,:3].max(1),'D')+pd.to_datetime(df.baseline_date)
Out[437]: 
0   2018-01-01
1   2017-01-13
2   2016-01-04
3   2015-01-05
dtype: datetime64[ns]

您应该将days*列转换为pd.Timeadelta

您可以将apply与lambda函数一起使用

df[daylikecolumne].apply(lambda c: pd.Timedelta(c,'D'))

通过这种方式,您可以在兼容的数据类型(例如timedelta和datetime)之间进行加减。您应该将days*列转换为pd.Timeadelta

您可以将apply与lambda函数一起使用

df[daylikecolumne].apply(lambda c: pd.Timedelta(c,'D'))

通过这种方式,您可以在兼容的数据类型(例如timedelta和datetime)之间进行加减

什么是基线数据的数据类型?什么是基线数据的数据类型