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
答案 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