python - 从熊猫数据框中永久删除行
问题描述
如何从熊猫数据框中永久删除行?例如:我有一个包含标题列的电子表格,但在前 4 行和后 2 行中有一些我不想要的信息。所以我使用:
dataSet = pd.read_excel(excelFile)
dataSet.drop(dataSet.head(4).index,inplace=True)
dataSet.drop(dataSet.tail(2).index,inplace=True)
rowCount = dataSet.shape[0]
for a in range(rowCount):
newPatientName = dataSet.iloc[a][0]
print(newPatientName)
通过不包括电子表格顶部和底部的信息,这可以按预期工作。但是,当我稍后在代码中执行此操作时:
columnList = []
for col in dataSet.columns:
columnList.append(col)
print(columnList)
它打印:
['Fab Tracking (w Completed) Report', 'Unnamed: 1', 'Unnamed: 2', 'Unnamed: 3', 'Unnamed: 4', 'Unnamed: 5', 'Unnamed: 6', 'Unnamed: 7', 'Unnamed: 8', 'Unnamed: 9']
Fab Tracking (w Completed) Report'
我认为我在上面删除的行在哪里?列没有名字......我在这里错过了什么。
我也试过dataSet = dataSet[4:-2]
编辑:
在下面有人询问我是否删除列而不是行之后,我发布了电子表格的图片。如果我在 excel 中手动编辑此工作表并删除前 4 行,然后运行:dataSet.columns
它将给我列标题的名称。但我不想每次都打开电子表格来执行此操作。我希望 pandas 删除或忽略前 4行,以便我可以获得标题的名称
解决方案
在 pandas 中,列名或标题是持久的,并且在删除/附加行时不会更改。如果您试图完全忽略文件的前 4 行,您可以像这样使用 pd.read_excel 中的 skiprows 参数 -
pd.read_excel(excelFile, skiprows=4)
然后使用 - 删除最后 2 行
dataSet = dataSet[:-2]
columnList=list(dataSet.columns)
如果您尝试创建列名列表,它也可以更快地使用。
推荐阅读
- amazon-ec2 - 密钥斗篷身份验证问题
- r - 我正在尝试在 Dinamica EGO 5-5.2.1 中执行插值(GLM),在 R 执行中捕获此错误 - 错误:无法加载“包 'sp'”
- postgresql - 应用程序代码中的大写列名问题
- javascript - 为什么图像上传器无法在 chrome 上运行?
- r - XGB predict 在预测外部火车值时总是返回相同的值
- amazon-dynamodb - aws 胶水作业以导入 dynamodb 数据
- python-3.x - python中的黑名单href以删除垃圾站点
- php - 网页卷曲检索于 2021 年 8 月至 2021 年 9 月停止工作
- docker - 开发应用程序时读取 Docker 中 Scality\S3server 存储的访问权限
- x86 - 操作系统如何确保一个进程无法访问 x86 架构中全局描述符表中另一个进程的基本限制?