我有以下資料框:
https://i.stack.imgur.com/b5CMd.png(44 行)
我嘗試使用 CategoricalIndex() 對其進行排序,但發現只有在月份值沒有重復的情況下才能完成。任何人都知道如何按時間順序對其進行排序。
uj5u.com熱心網友回復:
希望能幫助到你
# Add new column in format YYYYMM
df['year_month'] = df['year'] (pd.to_datetime(df.month , format='%B').dt.month.astype(str).str.zfill(2))
# sort values
df.sort_values(by=['year_month'], inplace=True)
uj5u.com熱心網友回復:
你也可以試試:
df['date']=(df['month'] ' ' df['year'])
df['date']=pd.to_datetime(df['date'])
df=df.sort_values('date')
uj5u.com熱心網友回復:
始終嘗試發布您的代碼。通過這種方式,我們可以弄清楚為什么您的分類排序沒有成功。但我懷疑你忘記了ordered=True引數。
分類排序允許根據自定義順序進行排序,并且非常適合這種情況。它還可以處理重復的月份值。這是我的代碼:
df["month"] = pd.Categorical(df["month"],
categories=["January", "February", "March", "April", "May", "June", "July",
"August", "September", "October", "November", "December"],
ordered=True)
之后我們可以呼叫函式sort_values():
df = df.sort_values(["year", "month"], ignore_index=True)
干杯并保持下去!
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482774.html
