Python 从csv文件中获取前N个重复出现的值时出现问题
您好,我的一些python出现了问题。我正在尝试制作一个程序,接收一个csv文件,并告诉我一列中出现频率最高的50个单词。 我的csv文件采用以下格式: ID、城市、州、酒店名称、价格 佐治亚州亚特兰大1号,勒罗亚尔,200 例如,我想浏览一下这个列表,告诉我50个最常见的城市。 我的代码: 我确信我的问题来自我的c=计数器(k),它打印每个城市名称的单个字母,而不是城市本身。所以它会打印('a',2),('d',1),('k',1),('l',1),('O',1),('n',1),而不是告诉我“奥克兰”在我的csv文件中出现了多少次。我如何让它显示整个字符串?Python 从csv文件中获取前N个重复出现的值时出现问题,python,pandas,csv,dataframe,Python,Pandas,Csv,Dataframe,您好,我的一些python出现了问题。我正在尝试制作一个程序,接收一个csv文件,并告诉我一列中出现频率最高的50个单词。 我的csv文件采用以下格式: ID、城市、州、酒店名称、价格 佐治亚州亚特兰大1号,勒罗亚尔,200 例如,我想浏览一下这个列表,告诉我50个最常见的城市。 我的代码: 我确信我的问题来自我的c=计数器(k),它打印每个城市名称的单个字母,而不是城市本身。所以它会打印('a',2),('d',1),('k',1),('l',1),('O',1),('n',1),而不是告诉我
(注意:我知道缩进,我只是在将代码输入堆栈溢出时很糟糕)如果
pandas
是一个可行的选项,这很简单:
import pandas as pd
# read file
df = pd.read_csv(fin_name)
# return value counts as {city -> count} dictionary
d = df['City'].value_counts().to_dict()
# sort descending, return top 50 most common as list of tuples
d_sorted = sorted(d.items(), key=lambda x: x[1], reverse=True)[:50]
如果我使用pandas,我是否不再需要csv库?难以置信,谢谢!出于好奇,没有办法使用“收藏”库来解决它吗?有,但编码需要更长的时间!从学术角度来看,学习一次是很好的,但之后请相信经过测试的库。我希望我不会晚问,但我该如何解决我们我的程序运行得很好,但当我试图调整它以排除熊猫时,我无法通过计数器输出的字符而不是整个字符串。谢谢
import pandas as pd
# read file
df = pd.read_csv(fin_name)
# return value counts as {city -> count} dictionary
d = df['City'].value_counts().to_dict()
# sort descending, return top 50 most common as list of tuples
d_sorted = sorted(d.items(), key=lambda x: x[1], reverse=True)[:50]