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


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

打印(女( 印花男

CSV文件有5列这是图片

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

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

  2. 根本不需要循环。


print(df['gender'].tolist().count('female'))
print(df['gender'].tolist().count('male'))

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

print(df['gender'].value_counts()['male'])
print(df['gender'].value_counts()['female'])

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

你只需要value_counts

df['gender'].value_counts()

我创建了下面的csv文件:

student_id,gender,major,admitted
35377,female,chemistry,False
56105,male,physics,True
31441,female,chemistry,False
51765,male,physics,True
31442,female,chemistry,True

将 csv 文件读入数据帧:

import pandas as pd
df=pd.read_csv('D:/path/test1.csv', sep=',')
df[df['admitted']==True].groupby(['gender','admitted']).size().reset_index(name='count')
df
    gender  admitted    count
0   female  True    1
1   male    True    2

希望这有帮助!

我想你可以用这些兄弟,

// This line creates create a data frame which only have gender as male
count_male=df[df['Gender']=="male"]
// 2nd line you are basically counting how many values are there in gender column
count_male['Gender'].size

(或(

count_male=df['Gender']=="male"]
count_male.sum()

取列中的值 gender ,存储在列表中,并计算出现次数:

import pandas as pd
df = pd.read_csv('admission_data.csv')
print(list(df['gender']).count('female'))
print(list(df['gender']).count('male'))

最新更新