如何使用Pandas删除Excel首列空值转置后插入指定行
实现步骤及代码
首先安装所需依赖:pip install pandas openpyxl numpy
完整实现代码如下:
import pandas as pd import numpy as np # 1. 读取Excel数据,不设置默认表头 df = pd.read_excel('你的Excel文件路径.xlsx', header=None) # 2. 提取A列(对应DataFrame第0列)所有非NaN值,构造待插入的行 a_col_non_null = df[0].dropna().tolist() insert_row = [np.nan] + a_col_non_null # 自动补齐行长度,和原数据列数保持一致 if len(insert_row) < df.shape[1]: insert_row += [np.nan] * (df.shape[1] - len(insert_row)) insert_row = pd.Series(insert_row, index=df.columns) # 3. 处理前3行的空列左移,匹配预期输出格式 for i in range(3): df.iloc[i, 1:] = df.iloc[i, 2:].values df.iloc[i, -1] = np.nan # 4. 将构造好的行插入第8行位置(Pandas默认0索引,对应插入位置为7) insert_pos = 7 df_top = df.iloc[:insert_pos] df_bottom = df.iloc[insert_pos:] df = pd.concat([df_top, pd.DataFrame([insert_row]), df_bottom], ignore_index=True) # 5. 处理原U1、U2所在行的列左移,删除A列已提取的内容 for i in [11, 12]: df.iloc[i, :-1] = df.iloc[i, 1:].values df.iloc[i, -1] = np.nan # 6. 导出处理后的结果到新Excel文件 df.to_excel('处理后的结果.xlsx', index=False, header=False)
说明
- 如果实际数据中U1、U2所在的行位置和示例不同,调整步骤5的行索引即可
- 代码会自动识别A列的非空值数量构造插入行,列数和实际数据不一致时也能自动适配
内容的提问来源于stack exchange,提问作者Nikita
相关产品推荐
相关产品推荐

