pandas中行之间的减法 - python

时间:2016-05-24 10:58:15

标签: python pandas

df=pd.DataFrame(data={'a':['x','y'], 'b':[25,23]},index=[0,1])

我只想在行之间执行简单的减法

df.b[df.a=='x']-df.b[df.a=='y']

但是我得到了这个输出

0  NaN
1  NaN

1 个答案:

答案 0 :(得分:2)

我认为您需要按values转换为numpy array,因为df都有不同的索引:

print (df.b[df.a=='x'])
0    25
Name: b, dtype: int64

print (df.b[df.a=='y'])
1    23
Name: b, dtype: int64

print (df.b[df.a=='x'].values - df.b[df.a=='y'].values)
[2]

如果按索引s2更改索引s1

s1 = (df.b[df.a=='x'])

s2 = pd.Series(df.b[df.a=='y'].values, index=s1.index)

print (s1)
0    25
Name: b, dtype: int64

print (s2)
0    23
dtype: int64

print (s1 - s2)
0    2
dtype: int64