【问题标题】:How to use if statements with pandas/ csv files如何在 pandas/csv 文件中使用 if 语句
【发布时间】:2019-02-12 07:02:29
【问题描述】:

我想检查一个系列中的字符串数据是否等于给定的字符串。 但这会返回: Series 的真值是模棱两可的。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

我知道要使用和/或我使用 & / |但我不明白如何使用 if 语句来做到这一点

for i in range(len(data)):
    if (data.Sex == 'female'):
        if data.Survived == 1:

编辑

所以我想做的是检查数据集中每一行的 Sex 列是否设置为女性。这样做的最佳方法是什么。 以下是数据的示例:

PassengerId,Survived,Pclass,Name,Sex,Age,SibSp,Parch,Ticket,Fare,Cabin,Embarked
1,0,3,"Braund, Mr. Owen Harris",male,22,1,0,A/5 21171,7.25,,S
2,1,1,"Cumings, Mrs. John Bradley (Florence Briggs 

我可能做错了。如果我是,请告诉我。

【问题讨论】:

  • 整个系列怎么可能等于一个字符串?你的意思是它是否存在于其中?
  • 举个例子
  • @sam46 我编辑了,希望这能给你一个更好的主意
  • 如果您只是根据您的条件选择:df[(df.Sex == 'female') & (df.Survived == 1)]

标签: python csv data-analysis


【解决方案1】:

您可以使用np.where

例如:

import pandas as pd
import numpy as np

df = pd.DataFrame({"sex": ['female', 'male', 'male' , 'female', 'female'],
                   "Survived": [0, 0, 0, 0, 0]})
df["Survived"] = np.where(df["sex"] == 'female', 1, 0 )
print(df)

输出:

   Survived     sex
0         1  female
1         0    male
2         0    male
3         1  female
4         1  female

【讨论】:

    猜你喜欢
    • 2015-11-25
    • 2019-01-14
    • 1970-01-01
    • 2021-09-15
    • 1970-01-01
    • 2020-10-14
    • 1970-01-01
    • 1970-01-01
    • 2017-08-30
    相关资源
    最近更新 更多