第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

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

根據(jù)其他列的值將值分配給數(shù)據(jù)框列的正確方法

根據(jù)其他列的值將值分配給數(shù)據(jù)框列的正確方法

繁花不似錦 2022-12-06 16:39:05
我有一個看起來像這樣的數(shù)據(jù)框:   a     b      c0  A   1.0   10.01  B   2.0   20.02  C   3.0   30.03  A   4.0   40.04  B   5.0   50.05  C   6.0   60.06  A   7.0   70.07  B   8.0   80.08  C   9.0   90.09  A  10.0  100.0我想創(chuàng)建一個 'd' 列,其值取決于 'a',這樣如果 'a' 列的值在 ['A','B'] 中,則 'd' 列獲取 'b' 中的值或否則它獲得'c'中的值。我想要的結(jié)果是:   a     b      c     d0  A   1.0   10.0   1.01  B   2.0   20.0   2.02  C   3.0   30.0  30.03  A   4.0   40.0   4.04  B   5.0   50.0   5.05  C   6.0   60.0  60.06  A   7.0   70.0   7.07  B   8.0   80.0   8.08  C   9.0   90.0  90.09  A  10.0  100.0  10.0我努力了:df["d"] = np.nanfor i in range(df.shape[0]):    if df.a.iloc[i] in ['A','B']:        df.d.iloc[i] = df.b.iloc[i]    elif df.a.iloc[i] in ['C']:        df.d.iloc[i] = df.c.iloc[i]這給了我想要的答案,但我得到了錯誤,“SettingWithCopyWarning:試圖在 DataFrame 的切片副本上設置一個值”我也知道 for 循環(huán)并不理想,所以我嘗試使用布爾掩碼來執(zhí)行此操作,但是print(df.a in ['A','B'])給我警告,“ValueError:系列的真值不明確。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()?!盿) 修復 for 循環(huán)或 b) 用更優(yōu)雅的東西替換 for 循環(huán)的最佳方法是什么?我花了一個小時通過 SO,但我找不到針對我的特定問題的好答案。任何幫助表示贊賞。
查看完整描述

2 回答

?
鴻蒙傳說

TA貢獻1865條經(jīng)驗 獲得超7個贊

您可以使用np.where

In [1696]: df['d'] = np.where(df['a'].isin(['A', 'B']), df['b'], df['c'])     

In [1697]: df 

Out[1697]: 

   a     b      c     d

0  A   1.0   10.0   1.0

1  B   2.0   20.0   2.0

2  C   3.0   30.0  30.0

3  A   4.0   40.0   4.0

4  B   5.0   50.0   5.0

5  C   6.0   60.0  60.0

6  A   7.0   70.0   7.0

7  B   8.0   80.0   8.0

8  C   9.0   90.0  90.0

9  A  10.0  100.0  10.0


查看完整回答
反對 回復 2022-12-06
?
九州編程

TA貢獻1785條經(jīng)驗 獲得超4個贊

您可以使用isin和np.select:


df['d'] = np.select( (df.a.isin(['A','B']), df.a.eq('C')),

                    (df.b, df.c), np.nan)

如果a列A,B,C僅包含示例數(shù)據(jù)中所示的值,您可以簡單地使用np.where:


df['d'] = np.where(df.a.isin(['A','B']), df.b, df.c)


# or

# df['d'] = np.where(df.a.eq('C'), df.c, df.b)


查看完整回答
反對 回復 2022-12-06
  • 2 回答
  • 0 關注
  • 107 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號