我有一個資料框,它有一列可能有多個日期值。我只想在串列中保留最大值。僅供參考:第 5 行有 2 個日期,我只想要一個日期(沒有時間)
資料:
date | calls | pres | pat
2021-08-17 13:20:23 | 1 | 1 | 1
2021-08-13 13:47:16 | 0 | 1 | 1
2021-08-16 11:14:08 | 1 | 1 | 1
2021-08-10 20:35:33 | 1 | 1 | 1
2021-08-31 14:32:13 | 2021-08-31 14:30:40 | 0 | 2 | 1
我正在嘗試這個:
y = df_pvt['date']
for i in range(len(y)):
try:
pick_date_i = y[i] = pd.to_datetime(y[i])
pick_date_i = pick_date_i.max()
except KeyError as e:
pass
pick_date_i = pick_date_i.max()
但它不起作用,我該如何糾正它?我期望在一行中只有一個最大日期。
uj5u.com熱心網友回復:
想法是按 分割值|,洗掉可能的空格并轉換為日期時間,最后使用max:
print (df_pvt)
date calls pres pat
0 2021-08-17 13:20:23 1 1 1
1 2021-08-13 13:47:16 0 1 1
2 2021-08-16 11:14:08 1 1 1
3 2021-08-10 20:35:33 1 1 1
4 2021-08-31 14:32:13 | 2021-08-31 14:30:40 0 2 1
f = lambda x: pd.to_datetime([y.strip() for y in x.split('|')]).max()
df_pvt['date'] = df_pvt['date'].apply(f)
print (df_pvt)
date calls pres pat
0 2021-08-17 13:20:23 1 1 1
1 2021-08-13 13:47:16 0 1 1
2 2021-08-16 11:14:08 1 1 1
3 2021-08-10 20:35:33 1 1 1
4 2021-08-31 14:32:13 0 2 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/363564.html
