pandas中两个DataFrame数据表直接相减
时间: 2024-01-07 17:03:10
浏览: 736
在 [pandas](https://wenku.csdn.net/doc/6412b725be7fbd1778d4940f?spm=1055.2569.3001.10083&kwd=pandas) 中,两个 [dataframe](https://wenku.csdn.net/doc/64534c09ea0840391e779430?spm=1055.2569.3001.10083&kwd=dataframe) 相减可以使用 `sub()` 方法。这个方法可以对两个 DataFrame 中的每个元素进行相减操作。它会将相同位置的元素相减,但是如果元素在其中一个 DataFrame 中不存在,则会用指定的 fill_value 来填充。
下面是一个例子:
```[python](https://wenku.csdn.net/doc/6412b46ebe7fbd1778d3f92a?spm=1055.2569.3001.10083&kwd=python)
[import](https://wenku.csdn.net/doc/5cpc346q6x?spm=1055.2569.3001.10083&kwd=import) pandas as pd
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
df2 = pd.DataFrame({'A': [1, 2], 'B': [4, 5]})
[result](https://wenku.csdn.net/doc/6401ad09cce7214c316ee0f1?spm=1055.2569.3001.10083&kwd=result) = df1.sub(df2, fill_value=0)
print(result)
输出结果如下:
0 0 0
1 0 0
2 3 6
在这个例子中,我们创建了两个 DataFrame `df1` 和 `df2`,并将它们相减。由于 `df2` 的第三行在 `df1` 中不存在,因此用 fill_value=0 来填充。最后,我们将结果保存到 `result` 变量中,并打印出来。
相关问题
pandas两个dataframe相减
### 回答1:
可以使用pandas的subtract()函数来实现两个dataframe的相减操作。具体的语法如下:
df1.subtract(df2)
其中,df1和df2分别是要相减的两个dataframe。这个函数会将df2中的每个元素从df1中对应位置的元素中减去,最终返回一个新的dataframe。
需要注意的是,两个dataframe相减时,它们的行和列必须完全一致,否则会出现错误。
### 回答2:
在Pandas中,可以通过`pd.DataFrame.subtract()`方法实现两个DataFrame相减。这个方法的参数包括要减去的DataFrame、用于匹配行和列的轴、要使用的默认值等。
首先,需要保证两个DataFrame具有相同的行和列。可以使用`pd.concat()`方法按行连接两个DataFrame并去除重复行。如果只想保留两个DataFrame中共有的行和列,则可以通过传递`join='inner'`参数实现:
df1 = pd.DataFrame({'A': [1,2,3], 'B': [4,5,6]})
df2 = pd.DataFrame({'A': [3,4,5], 'B': [6,7,8]})
df3 = pd.concat([df1, df2], axis=0, ignore_index=True, join='inner')
```
DataFrame中两列数据相减代码
最低
0.47元/天
开通会员,查看完整答案

成为会员后, 你将解锁


相关推荐
















