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

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

替換行中高于列值的值

替換行中高于列值的值

郎朗坤 2021-05-06 18:50:21
這似乎很簡單,但我無法弄清楚。因此,給定以下數據集:df = pd.DataFrame(np.random.randint(0,100,size=(50, 3)), columns=list('ABC'))df['Mean'] = df.mean(axis=1)    A   B   C   Mean0   26  6   73  35.0000001   89  55  29  57.6666672   8   89  87  61.3333333   83  25  64  57.3333334   35  89  97  73.666667如何替換單行中高于該行的平均列的所有值?所需的輸出:    A   B   C   Mean0   26  6   0   35.0000001   0   55  29  57.6666672   8   0   0   61.3333333   0   25  0   57.3333334   35  0   0   73.666667我已經試過了:df.apply(lambda x: 0 if x > df['Mean'] else x)這導致ValueError:ValueError:('系列的真值不明確。請使用a.empty,a.bool(),a.item(),a.any()或a.all()。','發生在索引A' )
查看完整描述

2 回答

?
MMMHUHU

TA貢獻1834條經驗 獲得超8個贊

這應該工作

df[df>df.mean(axis=1).tolist()] = 0

或者,如果您想使用均值列

df[df>df['Mean'].tolist()] = 0


查看完整回答
反對 回復 2021-05-18
?
狐的傳說

TA貢獻1804條經驗 獲得超3個贊

我認為那可以工作


for i in range(df.shape[1]):

    mask = df.iloc[:,i] > df.Mean

    column_name = df.columns[i]

    df.loc[mask, column_name] = 0


查看完整回答
反對 回復 2021-05-18
  • 2 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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