如何在Pandas中将同名列合并为单列并转换为多行数据
处理重复列名的DataFrame:合并同列为单列并转多行
可以通过以下简洁的pandas代码实现需求,不管重复列的数量多少,都能自动处理:
步骤说明
- 遍历DataFrame的所有唯一列名
- 对每个唯一列名,提取所有同名的列,将其值展平为一维数组
- 用这些展平后的数组构造新的DataFrame,每个唯一列名对应一列
代码示例
首先构造示例数据(模拟你的输入):
import pandas as pd # 原DataFrame(一行数据,多重复列) df = pd.DataFrame( [["abc", "def", "ghi", 123, 456, 789]], columns=["col_1", "col_1", "col_1", "col_2", "col_2", "col_2"] )
处理代码:
# 生成目标DataFrame result_df = pd.DataFrame({ col: df[col].values.flatten() for col in df.columns.unique() })
输出结果
运行后result_df的内容如下:
col_1 col_2 0 'abc' 123 1 'def' 456 2 'ghi' 789
扩展说明
如果原DataFrame包含多行数据(比如两行,每行对应多组重复列值),这个方法同样适用:
比如原DataFrame是:
col_1 col_1 col_2 col_2 0 a b 1 2 1 c d 3 4
处理后会得到:
col_1 col_2 0 a 1 1 b 2 2 c 3 3 d 4
内容的提问来源于stack exchange,提问作者Thiago Santos
相关产品推荐
相关产品推荐

