[英]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.