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

所以这是我正在尝试做的类似情况


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] = 0

sumdi = sum(a)

df.append(sumdi)


繁星coding
浏览 236回答 2
2回答

繁花不似锦

是的,您会想要应用逐行函数。# Select subset of columnscols = df1.iloc[:, -13:].columns# Create new column based on conditions that value is greater than 1df1['new'] = df1[cols].apply(lambda x: x > 1, axis=1).sum(axis=1)在幕后,这与@jezrael 的回答相同,只是语法略有不同。 gt()正在被应用的 lambda 取代。这只是为您的逻辑更复杂的其他条件/情况提供了更大的灵活性。注意:axis=1是确保每行应用您的函数的重要条件。您可以更改为axis=0逐列执行。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python