pandas.DataFrame.drop函数是一种用于从数据框中删除给定坐标轴上的行或列的方法。它可以用于删除指定标签的行或列,并返回新的数据框。
在Python中,可以使用以下语法来使用DataFrame.drop()函数:
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
在上面的代码中,参数含义如下:
labels
:删除的标签。axis
:用于确定要删除的是行还是列,0表示行,1表示列。index
:删除的行索引。columns
:删除的列索引。level
:只适用于具有多层索引的数据帧,指定要删除的级别。inplace
:指定是否在原始数据帧中进行删除操作。默认值为False。errors
:指定如何处理无效标签。如果它们是raise,则引发异常。否则,可以将它们忽略或打印警告信息。以下是两个 Python 代码示例,说明如何使用 DataFrame.drop函数的不同方式:
示例1:删除行和列
在下面的示例中,将从数据框中删除指定的行和列。原始数据框是:
import pandas as pd
data = {'name': ['John', 'Marry', 'Peter', 'David'],
'age': [22, 31, 36, 28],
'gender': ['Male', 'Female', 'Male', 'Male'],
'Marks': [84, 61, 35, 77]}
df = pd.DataFrame(data)
print(df)
原始数据帧如下所示:
name age gender Marks
0 John 22 Male 84
1 Marry 31 Female 61
2 Peter 36 Male 35
3 David 28 Male 77
然后使用上面提到的pandas.DataFrame.drop()方法来删除数据帧中的行和列如下:
df = df.drop([0,3],axis=0)
df = df.drop(['age'],axis=1)
print(df)
输出结果如下所示:
name gender Marks
1 Marry Female 61
2 Peter Male 35
在上面的代码中,我们使用了DataFrame.drop函数来删除索引0、3和列索引“age”。
示例2:原地修改和制定级别
在这个示例中,我们将使用inplace参数来原地更改数据框,而不是使用默认的创建一个新的数据框。 我们还将使用DataFrame.drop函数来删除多层索引级别。
原始数据框如下:
import pandas as pd
data = {('class 1', 'Alice'): [84, 72, 'M'],
('class 1', 'Bob'): [78, 92, 'M'],
('class 2', 'Charlie'): [65, 35, 'F'],
('class 2', 'David'): [85, 78, 'M']}
df = pd.DataFrame(data, index=['marks', 'age', 'Gender']).T
print(df)
原始数据帧如下所示:
marks age Gender
class 1 Alice 84 72 M
Bob 78 92 M
class 2 Charlie 65 35 F
David 85 78 M
现在,我们将使用 DataFrame.drop 函数来删除索引处级别为“Gender”的所有行,并将更改原始数据框的值:
df.drop(index='Gender', level=1, inplace=True)
print(df)
输出结果如下所示:
marks age
class 1 Alice 84 72
Bob 78 92
class 2 Charlie 65 35
David 85 78
在上面的代码中,我们使用了DataFrame.drop函数来删除级别为“level=1”的索引,即索引“Gender”。我们使用inplace参数来指定是否需要在原始数据帧中进行删除操作。
以上就是利用 DataFrame.drop 函数来删除行和列的步骤,该函数还有很多其他的参数用法,总结起来就是可以利用该函数,灵活操作数据帧。
本文链接:http://task.lmcjl.com/news/4562.html