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

如何选择数据框的特定列,并根据条件对它们求和?

如何选择数据框的特定列,并根据条件对它们求和?

繁星coding 2021-08-17 16:30:48
所以这是我正在尝试做的类似情况data = pd.read_csv(data)df = pd.DataFrame(data)print(df)数据框如下所示    ... 'd1' 'd2' 'd3... 'd13' 0  ...   0    0    0...   0 1  ...   0    0.95    0...   0 2  ...   0    0.95    0.95...  0依此类推,基本上我想选择我的数据框的最后 13 列,并计算每行有多少大于某个值,然后将其附加到我的数据框中。我想一定有一个简单的方法,我一直在尝试使用df.iloc[:, 21:]作为我感兴趣的第一列从这里开始,但是从这一点开始,我觉得卡住了。我一直在尝试许多不同的方法,例如criteria和 for 循环。我知道这是一件微不足道的事情,但我已经花了几个小时。任何帮助将非常感激。for x in df:    a = df.iloc[:,21:].values()    if a.any[:, 12] > 0.9:        a[x] = 1    else:        a[x] = 0sumdi = sum(a)df.append(sumdi)
查看完整描述

2 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

是的,您会想要应用逐行函数。


# Select subset of columns

cols = df1.iloc[:, -13:].columns

# Create new column based on conditions that value is greater than 1

df1['new'] = df1[cols].apply(lambda x: x > 1, axis=1).sum(axis=1)

在幕后,这与@jezrael 的回答相同,只是语法略有不同。 gt()正在被应用的 lambda 取代。这只是为您的逻辑更复杂的其他条件/情况提供了更大的灵活性。


注意:axis=1是确保每行应用您的函数的重要条件。您可以更改为axis=0逐列执行。


查看完整回答
反对 回复 2021-08-17
  • 2 回答
  • 0 关注
  • 235 浏览
慕课专栏
更多

添加回答

举报

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