亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何選擇數據框的特定列,并根據條件對它們求和?

如何選擇數據框的特定列,并根據條件對它們求和?

繁星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 關注
  • 257 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號