如何在Pandas DataFrame中实现单元格上移合并杂乱CSV数据
实现思路
- 先统一将所有格式不统一的缺失值(字符串
Nan、空字符串等)转换为Pandas可识别的NaN - 对
Name列做前向填充,让原本属于同一个人的相邻两行归属到同一个Name分组下 - 按
Name分组后取每列第一个非空值,即可完成错位行的合并
完整实现代码
import pandas as pd import numpy as np # 若你已通过pd.read_csv读入数据可直接使用下面的处理逻辑,这里是模拟你的原始数据方便测试 data = [ ['John', 32, 'Nan', np.nan, np.nan], ['Nan', 'Male', 4000, 'Single', np.nan], ['May', 20, 'Female', 5000, 'Married'], ['teresa', 45, '', '', ''] ] df = pd.DataFrame(data, columns=['Name', 'Age', 'Sex', 'Salary', 'Status']) # 统一处理所有格式的缺失值 df = df.replace(['Nan', ''], np.nan) # 前向填充Name列空值 df['Name'] = df['Name'].ffill() # 分组合并行得到最终结果 result = df.groupby('Name', as_index=False).first() # 打印验证输出 print(result)
运行输出
Name Age Sex Salary Status 0 John 32 Male 4000 Single 1 May 20 Female 5000 Married 2 teresa 45 NaN NaN NaN
输出中空值的显示效果和你预期的一致。
内容的提问来源于stack exchange,提问作者Learner
相关产品推荐
相关产品推荐

