Pandas:查找列中最大字符串值的索引

时间:2017-05-02 14:31:35

标签: python pandas

我有一些字符串格式的时间值。我想在列中返回最近或“最大”时间的值。我注意到argmax和idmax对字符串不起作用。我想避免转换它们来找到最大值的索引。有没有办法返回最大字符串值的索引?

df['Start_time'].max()

返回: '2017-05-02 15:47:21'

df.loc[df['Start_time'].idxmax()]

返回: ValueError:无法将字符串转换为float:'2017-01-26 16:33:16'

2 个答案:

答案 0 :(得分:4)

如果您不想转换为datetime,则可以使用boolean indexing将列与max值进行比较:

print (df[df['Start_time'] == df['Start_time'].max()])

索引可以使用:

df.index[df['Start_time'] == df['Start_time'].max()][0]

或者:

df[df['Start_time'] == df['Start_time'].max()].index[0] 

答案 1 :(得分:2)

来源DF:

In [60]: df
Out[60]:
            Start_time
0  2017-05-01 16:16:16
1  2017-05-02 15:47:21
2  2017-05-01 10:10:10

解决方案1:

In [61]: df.iloc[df['Start_time'].values.argmax()]
Out[61]:
Start_time    2017-05-02 15:47:21
Name: 1, dtype: object

解决方案2:

In [62]: df.loc[pd.to_datetime(df['Start_time']).idxmax()]
Out[62]:
Start_time    2017-05-02 15:47:21