簡體   English   中英

根據其他列修改數據框列中的值

[英]Modifying value in dataframe column based on other column

我有一個包含 A 列和 B 列的數據框(df):

   A   B
0  'a' 50
1  'b' 25
2  'a' 30
3  'c' 200

如果 A 列的值為“a”,我想將 B 列的值乘以 100,因此我的輸出應該是:

   A   B
0  'a' 5000
1  'b' 25
2  'a' 3000
3  'c' 200

任何人都可以建議一種更清潔的方法來做到這一點。 謝謝。

我認為測試子串不是必需的,只使用DataFrame.loc和比較值a

df.loc[df['A'] == "'a'", 'B'] *= 100
#same like
#df.loc[df['A'] == "'a'", 'B'] = df.loc[df['A'] == "'a'", 'B'] * 100
print (df)
   A     B
0  a  5000
1  b    25
2  a  3000
3  c   200

你能不能試試以下。

df['B']=np.where(df['A']=="'a'",df['B']*100,df['B'])

運行上述代碼后,數據幀的值將如下所示。

     A  B
0   'a' 5000
1   'b' 25
2   'a' 3000
3   'c' 200

np.where可以閱讀寂寂np.where

df.loc[df["A"] == "a", "B"] *= 100

或者如果您需要其他東西,您可以使用where函數。 但是對於這種情況,這就足夠了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM