pandas 2个dataFrame 没有同一索引如何连接
时间: 2024-09-07 12:01:46 浏览: 45
python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix实现
在Pandas中,如果你有两个DataFrame没有相同的索引,你可以使用`merge()`或`concat()`函数来连接它们。
1. 使用`merge()`函数:
`merge()`函数允许你根据两个DataFrame的列进行连接。如果没有相同的索引,你需要指定一个共同的列作为连接键。
下面是一个示例代码,展示如何使用`merge()`函数连接两个没有相同索引的DataFrame:
```python
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'C': ['C0', 'C1'], 'D': ['D0', 'D1']})
# 使用'A'列作为连接键连接两个DataFrame
merged_df = pd.merge(df1, df2, on='A')
print(merged_df)
```
输出结果将是连接后的DataFrame,其中包含了两个原始DataFrame的所有行,并根据指定的列进行了合并。
2. 使用`concat()`函数:
`concat()`函数允许你将多个DataFrame沿着指定的轴进行连接。如果没有相同的索引,你可以使用`axis=1`参数来将它们沿着列轴进行连接。
下面是一个使用`concat()`函数的示例代码:
```python
import pandas as pd
# 创建两个DataFrame
df1 = pd.DataFrame({'A': ['A0', 'A1', 'A2'], 'B': ['B0', 'B1', 'B2']})
df2 = pd.DataFrame({'C': ['C0', 'C1'], 'D': ['D0', 'D1']}).set_index('A')
# 沿着列轴连接两个DataFrame
concatenated_df = pd.concat([df1, df2], axis=1)
print(concatenated_df)
```
这将沿着列轴连接两个DataFrame,结果是一个具有所有行的连接后的DataFrame。
请注意,在连接没有相同索引的DataFrame时,确保你指定了合适的连接键或轴,以便正确地合并数据。
阅读全文