如何从数据帧中永久删除行? 例如: 我有一个电子表格,它有带标题的列,但在前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
它将为我提供列标题的名称。但我不想每次都打开电子表格。我想删除或忽略前4行,这样我就可以得到标题的名称
在pandas中,列名或标题是持久的,在删除/追加行时不会更改。如果您试图完全忽略文件的前4行,可以像这样使用pd.read\u excel中的skiprows参数-
然后使用-
如果要创建列名列表,那么使用
columnList=list(dataSet.columns)
也会更快您要删除列还是行
如果要删除列:
运行这个之后,当您运行for循环时,您将得到您想要的输出
如果您想删除行,那么您的代码就可以了
dataSet.drop(dataSet.head(4).index,inplace=True)
现在,for循环正在迭代列名,而不是行名
相关问题 更多 >
编程相关推荐