python两列合并
时间: 2025-01-30 10:30:29 浏览: 52
### 如何在 Python 中使用 Pandas 合并两列数据
当涉及到合并两个不同的列时,通常是指将这两列组合成一个新的单列表。这可以通过多种方式实现,具体取决于所需的结果形式。
#### 使用 `+` 运算符简单拼接字符串类型的列
如果目标是创建一列由其他两列组成的字符串表示,则可以直接利用加法运算来完成此操作:
```python
import pandas as pd
df = pd.DataFrame({
'first_name': ['John', 'Jane'],
'last_name' : ['Doe', 'Smith']
})
# 将 first_name 和 last_name 列的内容相加以形成新的 full_name 列
df['full_name'] = df['first_name'] + ' ' + df['last_name']
print(df)
```
对于数值型或其他类型的数据,可能需要先转换为字符串再执行上述操作[^1]。
#### 使用 `apply()` 函数自定义逻辑处理多列
有时,想要应用更复杂的规则去构建新列中的值,在这种情况下可以采用 apply 方法配合 lambda 表达式或定义好的函数来进行计算:
```python
def combine_columns(row):
return f"{row.first_name} {row.last_name}"
df['combined_column'] = df.apply(combine_columns, axis=1)
print(df)
```
这里通过编写一个名为 `combine_columns` 的辅助函数来自定义如何组合每一行上的多个字段,并将其应用于整个 DataFrame 上生成新的列[^2]。
#### 使用 `pandas.concat()` 水平堆叠现有列成为新列
另一种情况可能是希望保留原始各自行的位置不变而只是横向增加额外的一列作为它们之间关系的一种表达;此时可以用到 concat 函数指定轴参数为 1 来达到水平方向上的连接效果:
```python
new_col = pd.Series(['Mr.', 'Ms.'])
# 增加 title 列前缀至原 dataframe 并命名为 titled_names
titled_names = pd.concat([pd.Series(new_col), df[['first_name','last_name']]], keys=['title', 'name_parts'],axis=1).fillna('')
print(titled_names)
```
注意这里的例子还展示了怎样给新增加的 Series 设置名称以及填充缺失值以确保最终输出整洁美观[^3].
阅读全文
相关推荐


















