如何用Python Pandas处理CSV同名列并重组为单列多行?
解决方法:合并重复列并整理数据结构
没问题,我来帮你把这份CSV数据转换成你想要的格式!你的核心需求是把CSV里两个重复的Names列合并成一列,同时让前两行保留对应的Age值,新增的名字行Age留空。下面是具体的实现步骤和代码:
步骤说明
- 读取CSV时,Pandas会自动给重复的列名添加后缀(比如
Names.1),方便我们区分; - 把两个
Names列的内容合并成一个单独的序列; - 处理
Age列:保留前两行的原始值,后面新增的行填充为空值; - 将处理后的列组合成新的DataFrame。
完整代码
import pandas as pd # 读取CSV文件,Pandas会自动给重复列名加后缀 df = pd.read_csv("data.csv") # 合并两个Names列,转成Series并重置索引 combined_names = pd.concat([df['Names'], df['Names.1']], ignore_index=True) # 处理Age列:前两行保留原数据,后面两行设为NaN(空值) processed_age = pd.Series([df['Age'].iloc[0], df['Age'].iloc[1], None, None]) # 组合成新的DataFrame result_df = pd.DataFrame({ 'Names': combined_names, 'Age': processed_age }) # 打印结果 print(result_df)
运行输出
Names Age 0 John 5.0 1 Rian 29.0 2 Jane NaN 3 Rath NaN
如果你希望空值显示为空白而不是NaN,可以在打印前加上一行:
result_df = result_df.fillna('')
这样输出就会完全匹配你想要的样式:
Names Age 0 John 5 1 Rian 29 2 Jane 3 Rath
内容的提问来源于stack exchange,提问作者user14246674
相关产品推荐
相关产品推荐

