[英]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_date
是datetime
dtype
, days_1/2/3
是int
類型。
代碼給了我
ValueError: ('Cannot add integral value to Timestamp without freq.', 'occurred at index 0')
我想知道如何獲得base_line_date
+ days1/2/3
獲得的最大日期。
您可以在axis = 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。
您可以使用與lambda函數一起應用
df[daylikecolumne].apply(lambda c: pd.Timedelta(c,'D'))
這樣,您可以在兼容的datype之間添加減法,例如timedelta和datetime
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.