【问题标题】:How to sort dataframe based on a column in another dataframe in Pandas?如何根据 Pandas 中另一个数据框中的列对数据框进行排序?
【发布时间】:2018-01-16 12:34:48
【问题描述】:

假设我在上图中有两个数据框 df1 和 df2。 我想根据 df2 的 Col2 对 df1 进行排序。

所以 df1 的最终结果应该看起来像图片中的第三个数据帧,其中 Col2 的值相同,按 df2 顺序排列。

【问题讨论】:

    标签: python pandas


    【解决方案1】:

    您可以为此使用set_indexreindex 的组合。

    试试这个代码:

    df1 = pd.DataFrame({'Col1': ['a','b','c','d','e'], 'Col2': 
    ['chocolate','chicken','pizza','icecream','cake'] })
    Out :
      Col1       Col2
    0    a  chocolate
    1    b    chicken
    2    c      pizza
    3    d   icecream
    4    e       cake
    df2 = pd.DataFrame({'Col1': ['f','g','h','i','j'], 'Col2': ['chicken','cake','icecream','chocolate','pizza'] })
    Out :
      Col1       Col2
    0    f    chicken
    1    g       cake
    2    h   icecream
    3    i  chocolate
    4    j      pizza
    df1 = df1.set_index('Col2')
    df1 = df1.reindex(index=df2['Col2'])
    df1 = df1.reset_index()
    Out :
            Col2 Col1
    0    chicken    b
    1       cake    e
    2   icecream    d
    3  chocolate    a
    4      pizza    c
    

    【讨论】:

    • 您的建议也适用于使用外部列表对数据框进行排序。它解决了我的问题!谢谢!
    猜你喜欢
    • 2020-02-29
    • 2012-09-03
    • 2020-08-04
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2021-01-24
    • 1970-01-01
    • 2018-01-19
    相关资源
    最近更新 更多