【问题标题】:How can I sort the list in this order by popularity (most number of times)?如何按受欢迎程度(最多次数)按此顺序对列表进行排序?
【发布时间】:2022-01-12 06:06:25
【问题描述】:

所以我有一个csv 文件,其中包含多个这样的数据

1,8dac2b,ewmzr,jewelry,phone0,9759243157894736,us,69.166.231.58,vasstdc27m7nks3
2,668d39,aeqok,furniture,phone1,9759243157894736,jp,50.201.125.84,jmqlhflrzwuay9c
3,622r49,arqek,vehicle,phone2,9759544365415694736,az,53.001.135.54,weqlhrerreuert6f
4,6444t43,rrdwk,vehicle,phone9,9759543263245434353,au,54.241.234.64,weqqyqtqwrtert6f

我正在尝试使用这个函数def popvote(list) 来返回拍卖中最受欢迎的东西,例如vehicle

所以我希望我的函数返回第 4 行中最受欢迎的东西......在这种情况下是车辆

这是我目前所拥有的

def popvote(list):
    for x in list:
        g = list(x)
    return list.sort(g.sort)

但是,这并没有真正起作用..我应该更改什么以确保它起作用??

注意:答案应作为集合返回

编辑:所以我试图根据下面 (** xxxx **) 中指示的内容返回列表中重复次数最多的值

1,8dac2b,ewmzr,**jewelry**,phone0,9759243157894736,us,69.166.231.58,vasstdc27m7nks3
    2,668d39,aeqok,**furniture**,phone1,9759243157894736,jp,50.201.125.84,jmqlhflrzwuay9c
    3,622r49,arqek,**vehicle**,phone2,9759544365415694736,az,53.001.135.54,weqlhrerreuert6f
    4,6444t43,rrdwk,**vehicle**,phone9,9759543263245434353,au,54.241.234.64,weqqyqtqwrtert6f

所以在这种情况下,vehicle 应该是输出。

【问题讨论】:

  • 您要排序的内容非常不清楚。考虑在 csv 中设置排序标准、字段名称,以便人们理解和帮助您
  • @kalimba 我根据您的要求进行了编辑,并提供了我想要的输出

标签: python list function


【解决方案1】:
import pandas as pd
df = pd.read_csv("filename.csv")
most_common = df[df.columns[3]].value_counts().idxmax()

有什么问题吗?在 cmets 下。

【讨论】:

  • 有没有办法不使用 .idxmax.. 有没有更简单的方法可以做到这一点?
  • Idmax 只返回最常见的值,但如果您不顾一切,您可以使用集合计数器(1) 来获取最常见的项目,甚至可以编写一个缓慢的手动函数。
【解决方案2】:

另一种解决方案可能是(假设您将记录作为列表列表):

from statistics import mode

mode(list(zip(*your_csv))[3]) # item type is listed as 4th argument

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-16
    • 2019-08-19
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多