同一KEY多行数据转换为单行多列的技术实现需求
解决方案
1. SQL 实现(适用于数据库环境)
如果数据存储在关系型数据库中,不同数据库可用对应函数拼接Dim值:
MySQL 示例
SELECT KEY, GROUP_CONCAT(Dim SEPARATOR ' ') AS Combined_Dims FROM your_table_name GROUP BY KEY;
注意:MySQL默认
GROUP_CONCAT有长度限制,若拼接内容过长,可临时调整参数:SET SESSION group_concat_max_len = 1000000;
PostgreSQL 示例
SELECT "KEY", STRING_AGG(Dim, ' ') AS Combined_Dims FROM your_table_name GROUP BY "KEY";
2. Python Pandas 实现(适用于本地数据文件处理)
针对CSV/Excel等本地文件,用Pandas可高效处理40万条数据规模:
import pandas as pd # 读取数据(以CSV为例) df = pd.read_csv('your_data.csv') # 按KEY分组拼接Dim值 merged_df = df.groupby('KEY')['Dim'].apply(' '.join).reset_index() # 输出为示例格式的纯文本 for _, row in merged_df.iterrows(): print(f"{row['KEY']} {row['Dim']}") # 也可导出到文件 merged_df.to_csv('merged_result.csv', index=False, header=False)
3. Shell 脚本实现(适用于Linux/Unix环境下的文本文件)
如果是空格分隔的纯文本文件,用awk命令快速处理:
awk '{key=$1; dim=$3; arr[key] = arr[key] " " dim} END {for(k in arr) print k arr[k]}' your_data.txt | sed 's/^ //'
解释:
awk遍历行提取KEY和Dim并拼接,sed去除拼接后开头的多余空格
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

