根据其他列修改dataframe列中的值

时间:2020-01-03 06:06:25

标签: python pandas dataframe

我有一个带有A和B列的dataframe(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

任何人都可以提出一种更清洁的方式来做到这一点。谢谢。

3 个答案:

答案 0 :(得分:4)

我认为没有必要测试子字符串,仅将DataFrame.loc与比较值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 一起使用:

{{1}}

答案 1 :(得分:2)

请您尝试以下。

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

而阅读

答案 2 :(得分:0)

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

,或者如果需要其他功能,也可以使用where函数。但是对于这种情况,就足够了。