从DataFrame中减去Series,同时保持DataFrame结构不变

jma*_*tos 6 python numpy dataframe pandas

如何在保持DataFrame结构完整的同时从DataFrame中减去Series?

df = pd.DataFrame(np.zeros((5,3)))
s = pd.Series(np.ones(5))

df - s
   0  1  2   3   4
0 -1 -1 -1 NaN NaN
1 -1 -1 -1 NaN NaN
2 -1 -1 -1 NaN NaN
3 -1 -1 -1 NaN NaN
4 -1 -1 -1 NaN NaN
Run Code Online (Sandbox Code Playgroud)

我想要的是相当于从DataFrame中减去一个标量

df - 1
   0  1  2
0 -1 -1 -1
1 -1 -1 -1
2 -1 -1 -1
3 -1 -1 -1
4 -1 -1 -1
Run Code Online (Sandbox Code Playgroud)

DSM*_*DSM 11

也许:

>>> df = pd.DataFrame(np.zeros((5,3)))
>>> s = pd.Series(np.ones(5))
>>> df.sub(s,axis=0)
   0  1  2
0 -1 -1 -1
1 -1 -1 -1
2 -1 -1 -1
3 -1 -1 -1
4 -1 -1 -1

[5 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)

或者,对于一个更有趣的例子:

>>> s = pd.Series(np.arange(5))
>>> df.sub(s,axis=0)
   0  1  2
0  0  0  0
1 -1 -1 -1
2 -2 -2 -2
3 -3 -3 -3
4 -4 -4 -4

[5 rows x 3 columns]
Run Code Online (Sandbox Code Playgroud)