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

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

替換數(shù)據(jù)框中的值

替換數(shù)據(jù)框中的值

不負(fù)相思意 2023-08-22 16:24:16
我有一個包含 3 列(A、B、C)的數(shù)據(jù)框。當(dāng)列= 22 時,我想用列更新C列。我已經(jīng)編寫了這樣的更新語句,但它正在更新不匹配的行。你能告訴我如何更新數(shù)據(jù)框中的數(shù)據(jù)嗎?ABNaNdf = pd.DataFrame(data=[[10,20,30],[11,21,31],[12,22,32]], columns=['A','B','C']) df.C = df[df.B==22].A
查看完整描述

4 回答

?
幕布斯7119047

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

讓我們嘗試一下mask


df.C.mask(df.B==22, df.A,inplace=True)

df

    A   B   C

0  10  20  30

1  11  21  31

2  12  22  12


查看完整回答
反對 回復(fù) 2023-08-22
?
繁星coding

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

這是執(zhí)行此操作的幾種方法之一,是的,它需要額外的包,但如果您不知道np.where它非常方便。


import numpy as np


df['C'] = np.where(df['B']==22, df['A'], df['C'])


查看完整回答
反對 回復(fù) 2023-08-22
?
德瑪西亞99

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

df.loc[df.B==22, 'C'] = df.loc[df.B==22, 'A']



查看完整回答
反對 回復(fù) 2023-08-22
?
慕容708150

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

另一種選擇是使用locand?reindex

df['C']?=?df.loc[df.B==22,'A'].reindex(df.index).fillna(df['C'])

理想情況下,您可以np.where在這種情況下使用,但這就是您的代碼不起作用的原因:

下面

df[df.B==22].A

返回:

2????12

您將看到返回值的索引是2,因此當(dāng)您設(shè)置df.C使用括號表示法而不是.表示法)時,它會更新命名C為前一個結(jié)果的系列,該系列不包含其他索引(但僅包含2),因此其他指標(biāo)設(shè)置為np.nan

此外,強烈建議不要chained indexing在賦值時使用它,因為它會導(dǎo)致此警告。


查看完整回答
反對 回復(fù) 2023-08-22
  • 4 回答
  • 0 關(guān)注
  • 1676 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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