【问题标题】:Create a new df column based on two existing columns基于两个现有列创建一个新的 df 列
【发布时间】:2020-07-14 03:07:03
【问题描述】:

我有一个 DataFrame,它有两列:“Sex”(可能的值 M 和 F)和“IsChild”可能的值(True 或 False)。根据 Sex 和 IsChild 的值创建一个采用值(Child、M​​ale、Female)的新列的最有效方法是什么?

【问题讨论】:

  • sex=female 中 child=True 的列的值是多少?如果child==true,它是否应该返回“child”,并且只有当child==false时才返回性别?
  • 是的,如果孩子为真,则只返回孩子,否则返回性别

标签: pandas


【解决方案1】:

对于这个简单的条件,下面的代码可以工作:

df.loc[df["Child"]==True, "new_col"] = "Child"
df.loc[df["Child"]==False, "new_col"] = df["Sex"]

在第一行:df.loc 根据条件只取一些行,我为其分配“子”值。在我们的例子中,条件是df["Child"]==True

第二行也差不多。它只更新df["Child"]==false

然后您可以使用.map 替换值(例如 M 到 Male)

如果您的情况更复杂,您可以使用apply 函数:它分别适用于每一行。您可以编写一个辅助函数,根据您的条件返回您想要的任何内容,然后使用 apply 在每一行上调用此函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    • 1970-01-01
    • 2018-10-09
    • 1970-01-01
    相关资源
    最近更新 更多