繁体   English   中英

熊猫获取每一行的列日期时间值总和的最大值

[英]pandas get the max of column datetime value sums for each row

我正在尝试从每一行的列总和中获取最大值,并将最大值分配给新列,

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_datedatetime dtypedays_1/2/3int类型。

代码给了我

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

我想知道如何获得base_line_date + days1/2/3获得的最大日期。

您可以在axis = 1max

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。

您可以使用与lambda函数一起应用

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

这样,您可以在兼容的datype之间添加减法,例如timedelta和datetime

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM