我这里有一个代码,我想查找某个 csv 文件中女性和男性的总数。

Cha*_*kar 1 python csv pandas

import pandas as pd
df = pd.read_csv('admission_data.csv')
df.head()
female = 0
male = 0
for row in df:
    if df['gender']).any()=='female':
       female = female+1             
    else:
       male = male+1
Run Code Online (Sandbox Code Playgroud)

印刷(女) 印刷 男

CSV 文件有 5 列这是图片

我想知道女性、男性的总人数以及录取的人数、录取的女性人数、录取的男性人数谢谢。这是我尝试过的代码以及上述代码的更多迭代,但它们似乎都不起作用。

Dee*_*ace 5

  1. 你的if逻辑是错误的。

  2. 根本不需要循环。


print(df['gender'].tolist().count('female'))
print(df['gender'].tolist().count('male'))
Run Code Online (Sandbox Code Playgroud)

value_counts或者,您可以按照@Wen的建议使用:

print(df['gender'].value_counts()['male'])
print(df['gender'].value_counts()['female'])
Run Code Online (Sandbox Code Playgroud)

经验法则:99% 的情况下,使用 pandas 时不需要使用显式循环。如果您发现自己正在使用一种方法,那么很可能有一种更好(更快)的方法。