Skip to main content
 首页 » 编程设计

python之将向量减去每一行数据帧

2025年05月04日22jackei

我正在尝试从我的数据帧的每一行中减去一个向量。我正在使用 Python 3 和在 Windows 上运行的 Anaconda。

这是我拥有的数据框:

数据框 1(1 行,5 列):

    Col1  Col2  Col3  Col4  Col5 
45  94.0    94  92.0    90    86 

数据框 2(17981 行,5 列):

   Col1  Col2  Col3  Col4  Col5 
0  85.0    98  78.0    74    20 
1  74.1    87  34.0    85    15  
..  ...   ...   ...   ...   ... 

起初我尝试只用一个向量减去另一个向量,但我发现自己有多个 NAN,之后我尝试并遵循 this question我做到了

df1 = df1.iloc[0,:] 
df2.sub(df1) 

但我仍然收到一条错误消息:

ValueError: can only convert an array of size 1 to a Python scalar 

谁能帮助我并指出我需要做什么?

补充说明,两个数据框的形状是:

df1 = (5,) 
df2 = (17981,5) 

请您参考如下方法:

In [134]: d2.sub(d1.iloc[0], axis=1) 
Out[134]: 
   Col1  Col2  Col3  Col4  Col5 
0  -9.0   4.0 -14.0 -16.0 -66.0 
1 -19.9  -7.0 -58.0  -5.0 -71.0 

或:

In [135]: d2 - d1.iloc[0].values 
Out[135]: 
   Col1  Col2  Col3  Col4  Col5 
0  -9.0   4.0 -14.0 -16.0 -66.0 
1 -19.9  -7.0 -58.0  -5.0 -71.0