You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何将多列数据合并为单列(附示例数据集)

如何将多列数据合并为单列(附示例数据集)

嘿,我懂你想把分散在多列的数据整合到同一列,还得保留对应的客户信息对吧?先看看你的原始数据集:

原始数据集

CustomerCol1Col2Col3
Bob1112221
Michael112
Anna1132223
Rachel1142224334
Person5115

你想要的最终效果是这样的:

目标结果

CustomerCol1
Bob111
Bob2221
Michael112
Anna113
Anna2223
Rachel114
Rachel2224
Rachel334

接下来给你几个常用工具的实现方法,按需选就行:


方法一:用Excel实现

这个操作叫「逆透视」,Excel里有现成功能:

  1. 选中整个原始数据区域(包括表头)
  2. 点击数据选项卡,找到从表格/区域(旧版本Excel可能需要用Power Query或数据透视表)
  3. 在Power Query编辑器里,选中Customer列,右键选择逆透视其他列
  4. 把生成的Value列重命名为Col1,关闭并加载数据,就能得到目标结果啦

方法二:用Python Pandas实现

用代码处理的话,Pandas的melt函数刚好能搞定:

import pandas as pd

# 构造原始数据集(实际场景可替换为读取文件)
df = pd.DataFrame({
    'Customer': ['Bob', 'Michael', 'Anna', 'Rachel', 'Person5'],
    'Col1': [111, 112, 113, 114, 115],
    'Col2': [2221, None, 2223, 2224, None],
    'Col3': [None, None, None, 334, None]
})

# 执行逆透视并过滤空值
result = df.melt(id_vars='Customer', value_vars=['Col1', 'Col2', 'Col3'], value_name='Col1')
result = result.dropna(subset=['Col1']).drop(columns='variable').reset_index(drop=True)

print(result)

运行后就能得到你要的格式。


方法三:用SQL实现

如果是在数据库里处理,用UNION ALL拼接即可:

SELECT Customer, Col1 AS Col1 FROM your_table WHERE Col1 IS NOT NULL
UNION ALL
SELECT Customer, Col2 AS Col1 FROM your_table WHERE Col2 IS NOT NULL
UNION ALL
SELECT Customer, Col3 AS Col1 FROM your_table WHERE Col3 IS NOT NULL
ORDER BY Customer;

记得把your_table换成你实际的表名,这条语句会把每列的非空数据拼接到同一列,同时对应好客户名。

备注:内容来源于stack exchange,提问作者Beef_tataki12

火山引擎 最新活动