我的数据框具有这样的列:
pattern='[^\d!"#$%*+-:;<=>?@^_`{}|~'[]\]+'
我需要做的是创建一个布尔值列,如果上一列的行中的值为正,则该值为1;如果值为负,则为0。
输出列如下:
184 1
190 -2
272 -14
382 -40
439 20
440 20
797 -45
1108 0
1122 -1
1415 -1
1419 0
1641 -1
以此类推...基本思想是考虑到该值是正数还是负数,该列将与另一列相对应。
我如何在熊猫中做到这一点?
预先感谢
答案 0 :(得分:2)
你可以
df[, "new_col"] = np.where(df[,"old_col"]>0,1,0)
答案 1 :(得分:1)
df['mycolumn'] > 0
为您提供一组True / False值。您可以直接将其安全:
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)