根据其他列的值有条件地更改系列的值

glpsx

我正在使用具有以下结构的DataFrame体验/学习Python:

df = pd.DataFrame({"left_color"  : ["red", "green", "blue", "black", "white", ""],
                   "right_color" : ["red", "gray", "", "black", "red", ""],
                    "flag"       : [1, 2, 3, 1, 2, 3]})
print(df)

  left_color right_color  flag
0        red         red     1
1      green        gray     2
2       blue                 3
3      black       black     1
4      white         red     2
5                            3

我的目标是flag根据left_colorright_color的值有条件地更改Series的值特别:

  • 如果left_color缺少 right_color缺少,请将flag更改为numpy NaN
  • 如果left_color不同于right_color,则将flag更改0

这是我的尝试:

def myfunc(left_side, right_side, value):
    if (left_side == "") | (right_side == ""):
        value = np.nan
    if left_side != right_side:
        value = 0
df["flag"] = df.apply(lambda x: myfunc(x["left_color"], x["right_color"], x["flag"]), axis = 1)
print(df)

  left_color right_color  flag
0        red         red  None
1      green        gray  None
2       blue              None
3      black       black  None
4      white         red  None
5                         None

如您所见,我得到的结果不是我最初描述的结果。相反,我None到处都在获取价值。这是我想要的结果:

  left_color right_color  flag
0        red         red     1
1      green        gray     0
2       blue               NaN
3      black       black     1
4      white         red     0
5                          NaN

我想了解我的错误以及解决方法。另外,我想看看是否有更Python化的方法可以解决此问题,并且在计算上更有效。

迈克尔·加德纳

您忘记了在函数中返回值。

def myfunc(left_side, right_side, value):
    if (left_side == "") | (right_side == ""):
        return np.nan
    elif left_side != right_side:
        return 0
    else:
        return value

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel:根据其他列中的值有条件地选择单元格范围

来自分类Dev

根据多个其他变量有条件地替换值

来自分类Dev

在 Pandas 中有条件地用其他值替换列值

来自分类Dev

有条件地按其他列值填充列

来自分类Dev

有条件地,基于其他两个列的值对列求和

来自分类Dev

根据其他具有条件的列值创建新列

来自分类Dev

根据其他列值创建新列-有条件向前填充?

来自分类Dev

Excel公式-如何使用其他表格中的值有条件地填充列

来自分类Dev

有条件地更改data.frame的值,但保持R中其他所有内容不变

来自分类Dev

pandas - 有条件地用其他行值填充空行值

来自分类Dev

在其他列上有条件地从 hive 表中获取最新的列值

来自分类Dev

根据非NaN列的值有条件地在Pandas DataFrame中填充NaN值

来自分类Dev

根据属性值有条件地包含组件

来自分类Dev

用其他行的值有条件地替换NA

来自分类Dev

根据不同单元格中的值有条件地更改字体颜色

来自分类Dev

根据其他单元格的值有条件地格式化单词

来自分类Dev

熊猫-根据行值有条件地为新列选择数据的源列

来自分类Dev

根据pandas DataFrame中的列值有条件地替换多个列

来自分类Dev

根据所有列的值有条件地删除熊猫中的行

来自分类Dev

如何有条件地更改模型关系值

来自分类Dev

Ansible - 有条件地更改选项值

来自分类Dev

有条件地从其他系列中创建一个系列

来自分类Dev

有条件地从其他系列中创建一个系列

来自分类Dev

熊猫数据框:根据过去的日期和值有条件地添加列

来自分类Dev

根据行值有条件地创建新列

来自分类Dev

根据列中的最大值有条件地删除Excel中的重复项

来自分类Dev

R:根据列前缀和后缀有条件地替换值

来自分类Dev

有条件且有效地更改列中的特定值

来自分类Dev

使用其他列中的某些值创建列-有条件的

Related 相关文章

  1. 1

    Excel:根据其他列中的值有条件地选择单元格范围

  2. 2

    根据多个其他变量有条件地替换值

  3. 3

    在 Pandas 中有条件地用其他值替换列值

  4. 4

    有条件地按其他列值填充列

  5. 5

    有条件地,基于其他两个列的值对列求和

  6. 6

    根据其他具有条件的列值创建新列

  7. 7

    根据其他列值创建新列-有条件向前填充?

  8. 8

    Excel公式-如何使用其他表格中的值有条件地填充列

  9. 9

    有条件地更改data.frame的值,但保持R中其他所有内容不变

  10. 10

    pandas - 有条件地用其他行值填充空行值

  11. 11

    在其他列上有条件地从 hive 表中获取最新的列值

  12. 12

    根据非NaN列的值有条件地在Pandas DataFrame中填充NaN值

  13. 13

    根据属性值有条件地包含组件

  14. 14

    用其他行的值有条件地替换NA

  15. 15

    根据不同单元格中的值有条件地更改字体颜色

  16. 16

    根据其他单元格的值有条件地格式化单词

  17. 17

    熊猫-根据行值有条件地为新列选择数据的源列

  18. 18

    根据pandas DataFrame中的列值有条件地替换多个列

  19. 19

    根据所有列的值有条件地删除熊猫中的行

  20. 20

    如何有条件地更改模型关系值

  21. 21

    Ansible - 有条件地更改选项值

  22. 22

    有条件地从其他系列中创建一个系列

  23. 23

    有条件地从其他系列中创建一个系列

  24. 24

    熊猫数据框:根据过去的日期和值有条件地添加列

  25. 25

    根据行值有条件地创建新列

  26. 26

    根据列中的最大值有条件地删除Excel中的重复项

  27. 27

    R:根据列前缀和后缀有条件地替换值

  28. 28

    有条件且有效地更改列中的特定值

  29. 29

    使用其他列中的某些值创建列-有条件的

热门标签

归档