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

标签 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

最佳答案

试试这个:

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)

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

关于python - Python 中数据帧列上的多个 IF 条件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34325722/

相关文章:

python - 使用 BeautifulSoup 提取不在标签之间的文本

python - 在具有循环节点的复杂数据结构中寻找最短路径

c - 为什么 C 程序给出正整数的错误输出?

python - 搜索文件中包含特定单词/字符串组合的每一行列表

python - Pandas - 使用 Groupby 列出新列中的数据列

python - 根据条件合并行 Pandas 数据框

python - Jupyter notebook 中 shell 命令的实时输出

python - 将RDD保存为pyspark中的序列文件

Swift 用户创建未检测 UIText 长度

python - 如何使用 python 列表有效地重命名数据帧索引?