Python中数据帧列的多个IF条件

时间:2015-12-17 02:39:14

标签: python if-statement dataframe

我有一个简单的数据框,有两列:“性别”和“活着”。我想要做的是计算每个性别中有多少幸存(在文件中由1表示)。这是我的文件:

Sex Alive
male    1
male    0
female  1
female  1

我尝试使用以下代码,但它没有奏效。任何提示和指示都非常感谢。

for r in df:
    if [ (df.Sex=='male') & (df.Alive==1) ]:
        male_survival_rate += 1
    else:
        male_dead_rate += 1

1 个答案:

答案 0 :(得分:2)

试试这个:

import pandas as pd

df = pd.read_csv('abc.csv')

#filter dataframe
males = df.loc[(df['Sex'] == 'male') & (df['Alive'] == 1)]
females  = df.loc[(df['Sex'] == 'female') & (df['Alive'] == 1)]

#get number of rows
len(males.index)
len(females.index)

有更好的方法可以做到这一点,但是这个方法展示了如何在过滤数据帧时使用多个条件。