例如,我有一个四个人的数据框,分为 A 组和 B 组。现在我想过滤掉 B 组,将他们的 Point 除以一半,并将结果分配给名为“Point_new”的新列。
我正在使用如下代码
import pandas as pd
data = {'Name':['Tom', 'Nick', 'Krish', 'Jack'],
'Group':['A', 'B', 'B', 'A'],
'Point':[20, 21, 19, 18]}
df = pd.DataFrame(data)
df['Point_new'] = ''
df[df['Group']=='B']['Point_new'] = df[df['Group']=='B']['Point'] / 2
从上面代码的输出来看,Point_new 列没有填充计算结果。我想知道为什么会这样,我怎么能正确地做到这一点。
你可以这样做,关键是使用loc -
import pandas as pd
data = {'Name':['Tom', 'Nick', 'Krish', 'Jack'],
'Group':['A', 'B', 'B', 'A'],
'Point':[20, 21, 19, 18]}
df = pd.DataFrame(data)
df.loc[(df['Group'] == 'B'),'Point_new'] = df.loc[df['Group']=='B','Point'] / 2
print(df)
Name Group Point Point_new
0 Tom A 20 NaN
1 Nick B 21 10.5
2 Krish B 19 9.5
3 Jack A 18 NaN
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句