【问题标题】:How do I get additional column name information in a pandas group by / nlargest calculation?如何在 pandas group by / nlargest 计算中获取其他列名信息?
【发布时间】:2020-06-05 07:56:32
【问题描述】:

我正在使用六个fuzzywuzzy 比率比较字符串对,我需要为每对输出前三个分数。

这条线可以完成这项工作:

final2_df = final_df[['nameHiringOrganization', 'mesure', 'name', 'valeur']].groupby(['nameHiringOrganization', 'name'])['valeur'].nlargest(3)

但是,excel 输出表缺少包含比率名称的“mesure”列。这很烦人,因为我无法确定这六种比率中的哪一种最适合任何给定的货币对。

我认为在开头选择列可能有效(final_df[['columns', ...]]),但似乎没有。

有没有想过如何添加这些信息?

非常感谢!

【问题讨论】:

    标签: python-3.x pandas pandas-groupby fuzzywuzzy


    【解决方案1】:

    我认为这里可以使用另一种解决方案,使用 DataFrame.sort_values 按 3 列排序,然后使用 GroupBy.head

    final2_df = (final_df.sort_values(['nameHiringOrganization', 'name', 'valeur'], 
                                       ascending=[True, True, False])
                         .groupby(['nameHiringOrganization', 'name'])
                         .head(3))
    

    【讨论】:

    • 非常感谢!我已经看到 .head(3) 方法,也无法使其工作。无论如何,再次感谢!