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列这是图片
我想找出女性,男性的总数和录取的人数,录取的女性人数,录取的男性人数谢谢。这是我尝试过的代码,以及上述代码的更多迭代,但似乎都不起作用。
-
你的
if
逻辑是错误的。 -
根本不需要循环。
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'))