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)之间进行加减什么是基线数据的数据类型?什么是基线数据的数据类型