如何获取列中字母数字字符串的最大值?

时间:2019-02-09 18:58:05

标签: python-3.x pandas dataframe

我有一个如下所示的df:

ID:

20190126T153450495Ztest1@test1.com
20190126T155922394Ztest2@test2.com
20190126T164741292Ztest3@test3.com
20190126T160108969Ztest4@test4.com
20190205T000624869Ztest5@test5.com

如何仅基于datetimestamps获得ID列中的最大值?

在这种情况下,最大值为:

20190205T000624869Ztest5@test5.com

如果有帮助,此列上的dtype为object

1 个答案:

答案 0 :(得分:1)

获取第一个18值,转换为datetime并获取最大值索引,最后由atloc选择:

idx = pd.to_datetime(df['ID'].str[:18], format='%Y%m%dT%H%M%S%f').idxmax()

a = df.at[idx, 'ID']
#similar
#a = df.loc[idx, 'ID']
print (a)
20190205T000624869Ztest5@test5.com

使用argsort的另一种解决方案:

idx = df['ID'].str[:18].argsort().idxmax()

a = df.at[idx, 'ID']