我正在尝试确定一种更有效的方法来在 pandas df
中添加特定值。
对于下面的df
,我想在Value
中为每个X + Y
添加整数
区域
。因此,对于每个 X
,我想将其添加到以下 Y
中。
import pandas as pd
d = ({
'Area' : ['X','Y','Z','X','Y','Z'],
'Value' : [10,11,20,21,30,31],
})
df = pd.DataFrame(data=d)
如果没有太多值,我可以按照以下方式手动检查:
x = df.iloc[0] + df.iloc[1]
但是如果df
非常大,这就会变得低效。
预期输出:
21
51
最佳答案
过滤条件boolean indexing
到Series
,创建默认索引和 Series.add
:
s1 = df.loc[df['Area'].eq('X'), 'Value'].reset_index(drop=True)
s2 = df.loc[df['Area'].eq('Y'), 'Value'].reset_index(drop=True)
s = s1.add(s2)
print (s)
0 21
1 51
dtype: int64
解决方案的优点是 X
和 Y
值的顺序并不重要。
关于python - 在 pandas df 中添加值的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54980060/