Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
pandas-python中的行间减法_Python_Pandas - Fatal编程技术网

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