统计一个CSV文件中的男性和女性的数量

xpcnnkqh  于 2023-11-14  发布在  其他
关注(0)|答案(6)|浏览(117)

假设我有一个名为sample.csv的csv文件:

CODE     AGE     SEX     CITY
----     ---     ---     ----
E101      25      M      New York
E102      42      F      New York
E103      31      M      Chicago
E104      67      F      Chicago

字符串
我想数一数数据中的男性和女性的数量。例如,对于这一个,答案是:

M : 2
F : 2


我应该从哪里开始,我应该如何编码它?

l0oc07j2

l0oc07j21#

你可以这样做:

import pandas as pd
df = pd.read_csv("sample.csv")

print(f"M : {len(df[df['SEX'] == 'M'])}")
print(f"F : {len(df[df['SEX'] == 'F'])}")

字符串

bgtovc5b

bgtovc5b2#

>>> import csv
>>> M,F = 0,0
>>> with open('file.csv') as csvfile:
...     data = csv.reader(csvfile)
...     for row in data:
...         M += 1 if row[2] == "M" else F += 1

字符串

xesrikrc

xesrikrc3#

1.导入CSV文件。
1.把“性”一栏去掉。

import pandas as pd

data = pd.read_csv('sample.csv')

num_males = sum(data['SEX'] == 'M')
num_females = len(data['SEX']) - num_males

字符串

q3qa4bjr

q3qa4bjr4#

另一个解决方案是使用pandas包来实现。

import pandas as pd

csv_path_file = '' # your csv path file
separator = ';'

df = pd.read_csv(csv_path_file, sep = separator)
df['SEX'].value_counts()

字符串
将返回一个以'M'和'F'为索引、以计数为值的pd.Series对象。它也是检查错误数据的一个很好的解决方法,如果您有另一个类别或丢失数据,您会立即注意到它。

sxpgvts3

sxpgvts35#

最简单的方法是使用Pandas从csv读取数据并按以下方式分组:

import pandas as pd

df = pd.read_csv('sample.csv') // read data from csv
result = df.groupby('sex').size() // use .size() to get the row counts

字符串
输出量:

sex
f    2
m    2
dtype: int64

qaxu7uf2

qaxu7uf26#

在你使用外部pandas或内置csv模块从文件中读取后,你可以内置模块collections ' Counter来计算占用率,考虑示例:

import collections
import pandas as pd
df = pd.DataFrame({'CODE':['E101','E102','E103','E104'],'SEX':['M','F','M','F']})
for key, value in collections.Counter(df['SEX']).items():
    print(key,":",value)

字符串
输出量:

M : 2
F : 2


说明:collections.Counter是一个类似dict的对象,它在创建过程中接受iterable,并计算iterable中的占用次数。

相关问题