【问题标题】:Sort date in string format in a pandas dataframe?在熊猫数据框中以字符串格式对日期进行排序?
【发布时间】:2019-11-07 14:02:40
【问题描述】:

我有一个这样的数据框,如何排序。

  df = pd.DataFrame({'Date':['Oct20','Nov19','Jan19','Sep20','Dec20']})


        Date
    0   Oct20
    1   Nov19
    2   Jan19
    3   Sep20
    4   Dec20

我熟悉日期列表的排序(字符串)

 a.sort(key=lambda date: datetime.strptime(date, "%d-%b-%y"))

有什么想法吗?我应该分开吗?

【问题讨论】:

    标签: python pandas dataframe


    【解决方案1】:

    首先将列转换为日期时间,并通过Series.argsort获取排序值的位置,用于更改排序DataFrame.iloc

    df = df.iloc[pd.to_datetime(df['Date'], format='%b%y').argsort()]
    print (df)
        Date
    2  Jan19
    1  Nov19
    3  Sep20
    0  Oct20
    4  Dec20
    

    详情

    print (pd.to_datetime(df['Date'], format='%b%y'))
    0   2020-10-01
    1   2019-11-01
    2   2019-01-01
    3   2020-09-01
    4   2020-12-01
    Name: Date, dtype: datetime64[ns]
    

    【讨论】:

    • 有没有办法按降序执行 argsort()。
    • @Zanthoxylumpiperitum - 哟this
    • @Zanthoxylumpiperitum - df = df.iloc[pd.to_datetime(df['Date'], format='%b%y').argsort()[::-1]]
    猜你喜欢
    • 2021-04-04
    • 2019-05-07
    • 2021-10-07
    • 1970-01-01
    • 2021-07-03
    • 2021-10-21
    • 2020-11-06
    • 1970-01-01
    • 2018-07-08
    相关资源
    最近更新 更多