使用pandas read_table读取数组遇空行,如何修复行索引?
解决Pandas DataFrame出现空第0行的问题
嘿,我之前也碰到过好几次这种情况,大概率是你的数组本身带了空行,或者创建DataFrame时索引初始化的小问题,给你几个实用的解决方案:
1. 先处理数组再转DataFrame
如果你的数组开头就有一个空元素(比如[[], [数据1], [数据2]]这种结构),直接先过滤掉空行再创建DataFrame是最彻底的:
import pandas as pd # 你的原始数组 raw_array = [[], ["张三", 28], ["李四", 32]] # 过滤掉空的行 clean_array = [row for row in raw_array if row] # 转成DataFrame df = pd.DataFrame(clean_array, columns=["姓名", "年龄"])
2. 已创建DataFrame后修复
如果已经生成了带空第0行的DataFrame,两步就能搞定:
# 假设已经有了带空行的df df = pd.DataFrame(raw_array, columns=["姓名", "年龄"]) # 第一步:删除全空的行(how='all'确保只删完全没数据的行) df = df.dropna(how='all') # 第二步:重置索引,让索引从0开始连续递增 df = df.reset_index(drop=True)
额外提示
如果你的"空行"不是完全空,只是某几列没值,可以针对性过滤,比如只保留"姓名"列不为空的行:
df = df[df["姓名"].notna()] df = df.reset_index(drop=True)
这样处理后,你的DataFrame索引就会恢复成正常的连续序列,不会再有多余的空第0行啦!
内容的提问来源于stack exchange,提问作者LazyCat
相关产品推荐
相关产品推荐

