【问题标题】:How to reorder a dataframe based on a list? pandas [duplicate]如何根据列表重新排序数据框?熊猫[重复]
【发布时间】:2019-03-20 09:47:13
【问题描述】:

我有一个 df,我想根据列表重新排序它,如使用 Python 所示:

df=pd.DataFrame({'Country':["AU","DE","UR","US","GB","SG","KR","JP","CN"],'Stage #': [3,2,6,6,3,2,5,1,1],'Amount':[4530,7668,5975,3568,2349,6776,3046,1111,4852]})

df

list=["US","CN","GB","AU","JP","KR","UR","DE","SG"]

我该怎么做?有什么想法吗?谢谢!

【问题讨论】:

    标签: python pandas list dataframe reorderlist


    【解决方案1】:

    使用pd.Categorical

    list_ = ["US","CN","GB","AU","JP","KR","UR","DE","SG"]
    
    df['Country'] = pd.Categorical(df.Country, categories = list_, ordered = True)
    df.sort_values(by='Country')
    

    另外,不要将变量命名为 list,因为这会覆盖内置的 list 命令

    【讨论】:

    • 如果有 2 个列表,你会怎么做?
    猜你喜欢
    • 2012-06-19
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    相关资源
    最近更新 更多