如何在csv列中找到最常用的字符串值并返回?(Python)

r8uurelv  于 2022-12-10  发布在  Python
关注(0)|答案(1)|浏览(134)

(Not允许使用Pandas)
我对python还很陌生,正在努力解决这个问题。我正在尝试创建一个函数。我有一个CSV文件(名为personal_info.csv),里面有一堆不同的列(full_name,weight_b,height_c等)。我正在尝试循环遍历名为height_c的列,并返回最常用的数字。更多信息:所述列的范围是0-10,尽管有可能一些数字不会出现。这些数字以字符串形式存储(例如:'4'),我也尝试以字符串的形式返回值。如果出现频率最高的数字有任何联系,我只想返回第一个出现的数字。
下面是csv文件中的一些数据:
| 文件名|权重_B|高度_c|
| - -|- -|- -|
| 约翰·史密斯|七十四|2个|
| 雷切尔·兰姆|三十二|五个|
| 亚当·李|十二|2个|
| 麦肯齐特雷|二十六人|2个|
| 艾比·华莱士|七十九|一个|
| 凯伦棕|四十六|七个|
| 哈里赖特|七十三|九个|
| 马迪轴承|五十三个|四个|
因此,我尝试遍历height_c列,找到最常见的值(在本例中为2),但文件比这个长得多。
(编辑此内容以删除无用代码)

nhhxz33t

nhhxz33t1#

我建议将csv文件加载到Pandas Dataframe 中:

import pandas as pd
df = pd.read_csv('file.csv')

然后你可以很容易地得到'heigt_m'列中最常见的值:

df['heigt_m'].value_counts().idxmax()

编辑:如果不使用Pandas,我会打开并存储所有'height_c'值,然后计算最常见的值:

import csv

height_c = []
with open('file.csv', mode='r') as csv_file:
    csv_reader = csv.DictReader(csv_file)
    for row in csv_reader:
        height_c.append(row['height_c'])
        
most_frequent_height_c = max(set(height_c), key = height_c.count)

print(most_frequent_height_c)
2

其中.csv文件包含

file_name,weight_b,height_c
john smith,74,2
rachel lamb,32,5
adam lee,12,2
mackenzie tre,26,2
abby wallace,79,1
karen brown,46,7
harry wright,73,9
madi bear,53,4

相关问题