为了账号安全,请及时绑定邮箱和手机立即绑定

如何在熊猫中引用数组中的顺序值

如何在熊猫中引用数组中的顺序值

慕斯王 2021-12-09 10:59:41
我试图在满足两个条件时在数据框中创建一个新列,该列会吐出 1:(1) 相邻列中的单元格大于 0 和 (2) 相邻列中的单元格,前一行是也大于 0。这是代码:def rule(x, y):if x > 0 and y > 0:     return 1else:     return 0df = pd.DataFrame({ 'c1':[ 'high' ,'high', 'low', 'low'], 'c2': [0, 23, 17, 4]})df['new'] = df.apply(lambda x: rule(x['c2'], x['c2']), axis =  1)df.head()我不确定 lambda 函数中的数组引用应该如何编写,但这或多或少是我认为 lambda 函数的样子。
查看完整描述

1 回答

?
泛舟湖上清波郎朗

TA贡献1818条经验 获得超3个赞

使用shift功能构造一个临时列,然后apply像这样使用:


df = pd.DataFrame({ 'c1':[ 'high' ,'high', 'low', 'low'], 'c2': [0, 23, 17, 4]})

df['c2_shifted'] = df['c2'].shift(1)


def rule(row):

    return row['c2']>0 and row['c2_shifted'] > 0


df['new'] = df.apply(rule, axis =  1)


查看完整回答
反对 回复 2021-12-09
  • 1 回答
  • 0 关注
  • 227 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信