在熊猫df中添加值的有效方法

时间:2019-03-04 09:18:53

标签: python pandas add

我试图确定在 editText.Text = ""; 中添加特定值的效率更高。

对于下面的pandas df,我想为df中的每个integers添加Value中的X + Y。因此,对于每个Area,我想将其添加到以下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

2 个答案:

答案 0 :(得分:1)

使用XY创建一个掩码,并在每两个索引和sum()上使用groupby,使用:

m=df[df.Area.isin(['X','Y'])].reset_index(drop=True)
print(m.groupby(m.index//2)['Value'].sum())

输出

   0    21
   1    51

答案 1 :(得分:1)

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

解决方案的优势不是XY值的重要排序。