如何获得多列时间戳的最小值

时间:2018-05-30 10:37:13

标签: python pandas timestamp

我想获得多列时间戳的最小值。这是我的数据

Id      timestamp 1             timestamp 2             timestamp 3
136     2014-08-27 17:29:23     2014-11-05 13:02:18     2014-09-29 22:26:34
245     2015-09-06 15:46:00     NaN                     NaN
257     2014-09-29 22:26:34     2016-02-02 17:59:54     NaN
258     NaN                     NaN                     NaN
480     2016-02-02 17:59:54     2014-11-05 13:02:18     NaN

我想获得最小的时间戳

Id      minimal
136     2014-08-27 17:29:23
245     2015-09-06 15:46:00
257     2014-09-29 22:26:34
258     NaN
480     2014-11-05 13:02:18

1 个答案:

答案 0 :(得分:1)

首先选择iloc之前的所有列,转换为datetime并按行获取min,然后按join添加到第一列:

df = df[['Id']].join(df.iloc[:, 1:].apply(pd.to_datetime).min(axis=1).rename('min'))
print (df)
    Id                 min
0  136 2014-08-27 17:29:23
1  245 2015-09-06 15:46:00
2  257 2014-09-29 22:26:34
3  258                 NaT
4  480 2014-11-05 13:02:18