假设你有两个Pandas数据框df1和df2,它们的长度不同。你想要从它们的最后一个数据开始进行对齐,并将它们进行横向拼接
时间: 2024-03-17 16:47:30 浏览: 59
假设你有两个Pandas数据框`df1`和`df2`,它们的长度不同。你想要从它们的最后一个数据开始进行对齐,并将它们进行横向拼接。以下是一个示例代码:
```
import pandas as pd
# 创建示例数据
df1 = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]}, index=[1, 2, 3])
df2 = pd.DataFrame({'C': [4, 5, 6, 7], 'D': [7, 8, 9, 10]}, index=[4, 5, 6, 7])
# 找到两个数据框的最后一行索引
last_index1 = df1.index[-1]
last_index2 = df2.index[-1]
last_index = min(last_index1, last_index2)
# 将数据框进行对齐
df1 = df1.loc[last_index:]
df2 = df2.loc[last_index:]
# 将数据框进行横向拼接
result = pd.concat([df1, df2], axis=1)
print(result)
```
在这个示例中,我们首先找到了两个数据框的最后一行索引,并选择较小的那个。然后使用`loc`函数将两个数据框从最后一个数据开始进行对齐,最后使用`concat`函数将它们进行横向拼接。输出结果如下:
```
A B C D
3 3 6 NaN NaN
4 NaN NaN 4.0 7
5 NaN NaN 5.0 8
6 NaN NaN 6.0 9
7 NaN NaN 7.0 10
```
其中第一行是`df1`的最后一行数据,后面四列是`df2`从最后一个数据开始对齐后的数据。这些数据被横向拼接在了一起。请注意,由于`df1`和`df2`中的列名不同,因此在拼接时,会出现缺失值。
阅读全文