如何在PySpark中将多个列的数据合并为单个列
pandas DataFrame两列合并为单列实现方案
根据合并场景的不同,可选择对应操作方法:
1. 字符串拼接合并(适用于需要把两列文本内容拼接为一个新文本值的场景)
- 基础拼接(无分隔符)
import pandas as pd # 假设df1包含col1、col2两列 df2 = df1.copy() df2['merged_col'] = df2['col1'] + df2['col2']
- 带分隔符拼接,同时处理空值
# sep指定分隔符,na_rep指定空值替换内容 df2['merged_col'] = df2['col1'].str.cat(df2['col2'], sep='_', na_rep='')
- 非字符串列先转格式再拼接
df2['merged_col'] = df2['col1'].astype(str) + '_' + df2['col2'].astype(str)
2. 数值列求和合并(适用于两列为数值类型,需要求和得到新值的场景)
# 方法1:直接相加 df2['merged_col'] = df2['col1'] + df2['col2'] # 方法2:按行求和 df2['merged_col'] = df1[['col1', 'col2']].sum(axis=1)
3. 纵向堆叠为单列(适用于需要把两列的所有值上下摞到一起,形成更长单列的场景)
df2 = pd.DataFrame({ 'merged_col': pd.concat([df1['col1'], df1['col2']], ignore_index=True) })
内容的提问来源于stack exchange,提问作者Sean Fu
相关产品推荐
相关产品推荐

