代码之家  ›  专栏  ›  技术社区  ›  RustyShackleford

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

  •  1
  • RustyShackleford  · 技术社区  · 6 年前

    我有一个像这样的df:

    身份证件:

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

    如何获取 ID 列仅基于日期时间戳?

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

    20190205T000624869Ztest5@test5.com

    如果它有助于此列上的数据类型是 object

    1 回复  |  直到 6 年前
        1
  •  1
  •   jezrael    6 年前

    首先获得 18 值,转换为 datetime 并得到最大值的索引,最后选择依据 at loc :

    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']