Reputation: 10697
df=pd.DataFrame(data={'a':['x','y'], 'b':[25,23]},index=[0,1])
I just want to perform a simple subtraction between rows
df.b[df.a=='x']-df.b[df.a=='y']
But I get this output
0 NaN
1 NaN
Upvotes: 1
Views: 683
Reputation: 862921
I think you need convert to numpy array
by values
, because both df
have different indexes:
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]
If change index s2
by index of 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
Upvotes: 2