[英]I have a code here, I want to find the total number of females and males in a certain csv file.
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'])
经验法则:在使用 Pandas 时,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'))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.