pandas-python中的行间减法
我只想在行之间执行一个简单的减法pandas-python中的行间减法,python,pandas,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'] 我认为您需要通过转换到numpy数组by,因为这两个df都有不同的索引: 0 NaN 1 NaN 如果将索引s2更改为索引s1: print (df.b[df.a=='x']) 0 25 Name: b, dtype: int64 pr
df=pd.DataFrame(data={'a':['x','y'], 'b':[25,23]},index=[0,1])
但是我得到了这个输出
df.b[df.a=='x']-df.b[df.a=='y']
我认为您需要通过转换到
numpy数组
by,因为这两个df
都有不同的索引:
0 NaN
1 NaN
如果将索引s2
更改为索引s1
:
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]
你想要的输出是什么?@Vedang Mehta:在我的例子中,就是2行减法在索引上对齐,因为它不匹配,所以你得到
NaN
结果。即使你能做到这一点,它也有点含糊不清,应该返回什么,lhs或rhs的索引,组合系列的索引(这是它现在显示的),所以它取决于你的要求感谢你的答案很多!
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