【问题标题】:How to create a boolean column depending on positive or negative values of another column如何根据另一列的正值或负值创建布尔列
【发布时间】:2019-11-21 06:20:58
【问题描述】:

我有这样一列的数据框:

184         1
190        -2
272       -14
382       -40
439        20
440        20
797       -45
1108        0
1122       -1
1415       -1
1419        0
1641       -1

我需要做的是创建一个布尔列,如果前一列的行中的值为正,则值为 1,如果值为负,则值为 0。

输出列如下:

1 1
2 0
3 0
4 0
5 1

依此类推...基本思想是,考虑到值是正数还是负数,这一列将对应另一列。

我如何在熊猫中做到这一点?

提前致谢

【问题讨论】:

  • previous column is positive 你的意思可能是行
  • 是的,抱歉。这是行明智的

标签: python python-3.x pandas dataframe boolean


【解决方案1】:

你可以的

df[, "new_col"] = np.where(df[,"old_col"]>0,1,0)

【讨论】:

  • @Miguel2488 你确定这是你需要的吗?因为这会检查当前行而不是前一行
  • 就是这样。对不起,解释有点混乱
【解决方案2】:
df['mycolumn'] > 0

为您提供一组真/假值。您可以直接保护它们:

df['is_positive'] = df['mycolumn'] > 0

或者您使用numpy.where(boolean_list, true_value, false_value),它将布尔列表中的True 值替换为true_value,并将False 值替换为false_value

df['is_positive'] = np.where(df['mycolumn'] > 0, 1, 0)

【讨论】:

    猜你喜欢
    • 2015-12-20
    • 2019-09-06
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 2021-12-02
    • 1970-01-01
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多