两个DataFrame行的顺序不一样,需要对两个DataFrame相减,并生成一个新的DataFrame
时间: 2023-08-14 09:06:50 浏览: 165
如果两个 DataFrame 的行的顺序不一样,并且您想要执行相减操作并生成一个新的 DataFrame,可以使用 `pandas.DataFrame.reindex()` 函数对其中一个 DataFrame 进行重索引,以匹配另一个 DataFrame 的顺序。然后,可以使用 `sub()` 函数执行相减操作。
以下是一个示例代码:
```python
import pandas as pd
# 创建第一个 DataFrame
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
# 创建第二个 DataFrame
df2 = pd.DataFrame({'A': [3, 2, 1], 'B': [6, 5, 4]})
# 对第二个 DataFrame 进行重索引以匹配第一个 DataFrame 的顺序
df2 = df2.reindex(df1.index)
# 相减并生成新的 DataFrame
df3 = df1.sub(df2)
print(df3)
```
运行以上代码将输出以下结果:
```
A B
0 -2 -2
1 0 0
2 2 2
```
在这个示例中,我们使用 `reindex()` 函数将 `df2` 重新索引为与 `df1` 相同的行顺序。然后,我们使用 `sub()` 函数对两个 DataFrame 进行相减操作,并生成了新的 DataFrame `df3`。
请注意,`reindex()` 函数会根据指定的索引值重新排序 DataFrame 的行。在这种情况下,我们使用了 `df1.index` 来重新索引 `df2`,以确保两个 DataFrame 的行顺序相同。
阅读全文