【问题标题】:try to assign value to new column based on non blank entry of other column尝试根据其他列的非空白条目为新列分配值
【发布时间】:2019-04-18 04:40:55
【问题描述】:

我需要根据其他列“B”条件将“正确”分配给新列“A”,即:- 如果列“B”有非空白条目,则列“A”将分配值“正确” " else "需要检查" 我们有条件: 如果“B”列包含任何非空白条目,则“A”列将分配“正确” 输入:- 姓名 B A 亚当 34
屏幕
宾尼 35
坚韧
晴天 5
彼得

输出:- 姓名 B A 0 亚当 34.0 正确 1 屏幕正确 2 宾尼 35.0 正确 3 艰难 正确 4 晴天 5.0 正确 5 peter 正确

我尝试了以下方法:

df.loc[df['A'] != '', 'B'] = "Correct"

输入enter image description here

输出enter image description here

【问题讨论】:

标签: python python-3.x pandas python-2.7


【解决方案1】:
def label_A(row):
  if row['B'].notna():
    return "Correct"
  else:
    return "Check Required"

df['A'] = df.apply(lambda row: label_A(row), axis=1)

这是基于以下给出的答案:pandas create new column based on values from other columns

函数 label_A() 检查 B 列的值是否为空,然后将适当的值分配给 A 列。

【讨论】:

  • 我试过了...但实际上它为空白条目和非空白条目分配了“正确”...我正在共享输入详细信息和输出详细信息
  • 我稍微编辑了一下。尝试 notna() 而不是 != ''
  • 不工作...上面的代码..最后这个代码工作在正确的条件下 df.loc[df['B'].notna(), 'A'] = "Correct"跨度>
【解决方案2】:

终于这段代码工作了 df.loc[df['B'].notna(), 'A'] = "正确"

【讨论】:

    猜你喜欢
    • 2022-11-16
    • 1970-01-01
    • 2020-05-23
    • 2019-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    相关资源
    最近更新 更多