从datafram中减去序列

2024-06-10 17:43:45 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有一个类(带标题):

df1=             
         value
 B     0.000367
 S     0.000486
 T     0.000259
 J     0.000177

以及系列(无标题):

ser1=
 B    0.021711
 S    0.023538
 T    0.017815
 L    0.013303

我期待着从数据帧减去系列。我首先尝试直接减去它们:

           B         L        T       S    value  
B         NaN        NaN     NaN     NaN   NaN
S         NaN        NaN     NaN     NaN   NaN
T         NaN        NaN     NaN     NaN   NaN
L         NaN        NaN     NaN     NaN   NaN

然后我尝试通过以下方式将序列转换为df:

ser1.to_frame

然后我重复了这个过程,出现了这个错误:

数据类型:float64>;块值-:'method'和'float'的操作数类型不受支持

我只想对df1-ser1做一个减法


Tags: to数据标题dfvalue过程错误方式
1条回答
网友
1楼 · 发布于 2024-06-10 17:43:45

您还可以通过在.to_frame方法中添加括号并提供与dataframe的列名匹配的列名来保留现有的内容:

df1 - ser1.to_frame('value')

#       value
# B -0.021344
# J       NaN
# L       NaN
# S -0.023052
# T -0.017556

我希望这有帮助。你知道吗

网友
2楼 · 发布于 2024-06-10 17:43:45

使用^{}

df = df1.sub(ser1, axis=0)
print (df)
      value
B -0.021344
J       NaN
L       NaN
S -0.023052
T -0.017556

也可以通过^{}Series转换为DataFrame

df = df1.sub(ser1.to_frame('value'))
print (df)
      value
B -0.021344
J       NaN
L       NaN
S -0.023052
T -0.017556

相关问题 更多 >