如何合并两个行数不一致的<class 'pandas.core.frame.DataFrame'>
时间: 2024-09-06 07:08:18 浏览: 81
当你有两个 Pandas DataFrame 而它们的行数不一致时,你可以使用 `concat` 或 `merge` 函数来合并数据。这里有一些基本的策略:
1. **使用 `concat`**:
如果你想简单地将这两列 DataFrame 沿着某一轴(默认是水平方向,即索引),堆叠在一起,可以这样做:
```python
combined_df = pd.concat([df1, df2], ignore_index=True)
```
`ignore_index=True` 会创建一个新的、连续的索引,避免了因行数不同带来的潜在冲突。
2. **使用 `merge`**:
如果你需要基于某些共同的列(比如共享的键)进行合并,那么应该使用 `merge`。如果数据完全不匹配,则可以考虑 `outer join`:
```python
merged_df = pd.merge(df1, df2, how='outer', on='common_column')
```
`how='outer'` 会保留两个 DataFrame 中所有非重复的行,缺失值会被填充为NaN。
3. **处理缺失值**:
合并后可能会有缺失值,根据需求可以选择填充、删除或替换这些值。例如,用特定值填充:
```python
combined_df.fillna(value=0, inplace=True)
```
4. **检查合并结果**:
确保合并后的 DataFrame 是否满足预期,可以用 `.equals()` 检查两部分是否完全相同:
```python
assert combined_df.equals(expected_output), "DataFrame合并后不符合预期"
```
阅读全文