pandas将两列数据合并为1列
时间: 2024-10-01 15:11:20 浏览: 18
在pandas库中,你可以使用`concat()`、`merge()`或者`join()`函数将两个DataFrame中的两列数据合并到一个新的列中。这里简单介绍几种常见方法:
1. **使用concat()**: 如果你想按照行方向合并,可以将这两列的数据放在单独的DataFrame对象里,然后指定`axis=1`(默认值),表示按列合并。
```python
df1 = pd.DataFrame({'Column1': [1, 2], 'Column2': [3, 4]})
df2 = pd.DataFrame({'Column1': [5, 6], 'Column3': [7, 8]})
merged_df = pd.concat([df1, df2[['Column1', 'Column3']]], axis=1)
```
2. **使用merge()**: 这通常用于基于共享索引或键的列进行连接。如果你想根据共享的列合并,并创建一个新的列,可以设置`on`参数,并指定结果列名。
```python
if 'shared_key' in df1.columns and 'shared_key' in df2.columns:
merged_df = pd.merge(df1, df2[['shared_key', 'Column3']], on='shared_key')
merged_df['NewColumn'] = merged_df['Column1_from_df1'] + merged_df['Column3']
```
3. **使用join()** (适用于字典-like对象):
```python
df1 = df1.set_index('shared_key') # 设置df1的某列为主键
merged_df = df1.join(df2.set_index('shared_key'), how='outer') # outer join保留所有行
merged_df['NewColumn'] = merged_df[df1.columns[0]] + merged_df[df2.columns[0]]
```
以上每种方法都假设你有一个共享的列作为合并的关键,如果没有,可能需要先进行一些数据预处理。