簡體   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