【发布时间】:2018-08-31 03:31:20
【问题描述】:
我正在使用的数据框包含三个名为 list1、list2 和 list3 的列,基于三个单独的“最佳居住地”列表。
期望的输出:
我想返回另一个列、系列或 groupby,它显示每个城市在考虑所有列表中的位置后的总体排名,因此 Edingburgh 将位居榜首,其他人将根据它们的接近程度紧随其后的排名到每列的顶部。澄清一下,爱丁堡在list2 和list3 中排名第一。
它看起来像这样:
1 Edingburgh
2 Hart
3 Orkney, London, Solihull
4 Rutland, Bristol Hertfordshire
5 Wychavon, Newcastle, Northumberland
基本上,我想在考虑所有列表后查看每个城市的总体排名,并了解如何使用 Pandas 实现这一目标。
我尝试了什么?
我希望有一种简单的方法来使用类似 places2live.rank() 的东西进行排名,但不知道如何将它与字符串值一起使用。
数据
list1 list2 list3
0 Hart Edinburgh Edinburgh
1 Orkney London Solihull
2 Rutland Bristol Hertfordshire
3 Wychavon Newcastle Northumberland
4 Winchester Manchester South Lanarkshire
5 Wokingham Glasgow Berkshire
6 Waverley Leeds Darlington
7 Craven Cardiff North Lanarkshire
【问题讨论】:
-
你能告诉我们你的预期输出吗?
-
@Wen 请查看更新后的所需输出部分。谢谢
-
我将创建另一个数据集,其中仅包含
[list1, list2, list3]的唯一值(即每个城市),然后在这个新数据集中设置list1等于该城市所在的行号list1在原始数据集中。对list2和list3重复此操作。然后,对于每个城市,计算list1、list2和list3的平均值,然后按照新创建的avg_rank变量排列新数据集。 -
我不清楚你是如何生成输出的,你能描述一下你为创建整体排名所采取的步骤吗?