如何在 pandas group by / nlargest 计算中获取额外的列名信息?

How do I get additional column name information in a pandas group by / nlargest calculation?

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

这一行完成了工作:

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

但是,excel 输出 table 缺少包含比率名称的 'mesure' 列。这很烦人,因为那时我无法确定六个比率中的哪一个最适合任何给定的对。

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

有没有想过如何添加该信息?

非常感谢!

我认为这里可以使用另一种解决方案,通过 DataFrame.sort_values and then using GroupBy.head:

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