下面我将为您详细讲解Python使用Pandas.drop()从DataFrame中删除行/列的完整攻略。
1. Pandas.drop()简介
Pandas是一个Python的数据分析库,可以用于处理和分析各种结构化的数据,其中Pandas.drop()是一个删除行/列的函数。Pandas.drop()的具体使用方法如下:
DataFrame.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
其中参数说明如下:
- labels:要删除的行/列的标签,可接收单个标签或标签列表,默认为None;
- axis:确定待删除的行/列,0表示行,1表示列,默认为0;
- index:索引,与labels参数一致,但axis=0时使用;
- columns:列名,与labels参数一致,但axis=1时使用;
- level:对于MultiIndex dataframe,指定标签标识一个特定的级别,默认为None;
- inplace:是否修改原始DataFrame,默认为False;
- errors:如果指定的标签不在DataFrame中,则引发异常或忽略,raise或ignore,默认为raise。
2. 删除行示例
首先我们来看看如何删除DataFrame中的行,下面是一个示例数据集:
import pandas as pd
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Alex'],
'age': [28, 34, 29, 42, 22],
'country': ['US', 'UK', 'China', 'Australia', 'Canada']}
df = pd.DataFrame(data)
print(df)
输出结果:
name age country
0 Tom 28 US
1 Jack 34 UK
2 Steve 29 China
3 Ricky 42 Australia
4 Alex 22 Canada
我们想删除第4行,即Ricky的行,可以使用如下代码实现:
df.drop(index=3, inplace=True)
print(df)
输出结果:
name age country
0 Tom 28 US
1 Jack 34 UK
2 Steve 29 China
4 Alex 22 Canada
在这个例子中,我们通过指定index参数,将待删除的行的整数索引传递给DataFrame.drop()函数。由于inplace参数为True,所以原始数据集df会直接被修改。
除了使用整数索引,我们还可以使用标签来删除行。比如我们想删除name列中为Tom的行,可以使用如下代码实现:
df.drop(df[df['name'] == 'Tom'].index, inplace=True)
print(df)
输出结果:
name age country
1 Jack 34 UK
2 Steve 29 China
4 Alex 22 Canada
其中df[df['name'] == 'Tom']表示创建一个布尔值的pandas.Series,其中为True的索引值表示'name'列中与'Tom'相等的行。这个布尔Series可以在DataFrame.drop()中使用,delete该布尔Series为True的索引。最后,inplace参数为True表示对原始数据集进行就地修改。
3. 删除列示例
接下来我们来看看如何删除DataFrame中的列,下面是一个示例数据集:
import pandas as pd
import numpy as np
data = {'name': ['Tom', 'Jack', 'Steve', 'Ricky', 'Alex'],
'math': [70, 95, 89, 78, 83],
'english': [74, 61, 48, 87, 69],
'biology': [90, 88, 82, 76, 92]}
df = pd.DataFrame(data)
print(df)
输出结果:
name math english biology
0 Tom 70 74 90
1 Jack 95 61 88
2 Steve 89 48 82
3 Ricky 78 87 76
4 Alex 83 69 92
我们想要删除生物成绩列,可以使用如下代码实现:
df.drop('biology', axis=1, inplace=True)
print(df)
输出结果:
name math english
0 Tom 70 74
1 Jack 95 61
2 Steve 89 48
3 Ricky 78 87
4 Alex 83 69
在这个例子中,我们将axis参数设置为1以删除列。如果不指定axis,则默认为0,即删除行。
我们还可以通过多列名来删除多列。比如我们想要删除数学成绩和英语成绩两列,可以使用如下代码实现:
df.drop(['math', 'english'], axis=1, inplace=True)
print(df)
输出结果:
name
0 Tom
1 Jack
2 Steve
3 Ricky
4 Alex
由于Math和English两列都已经被删除,DataFrame只剩下名字name这一列了。
到此为止,我们已经学会了如何使用Pandas.drop()从DataFrame中删除行/列的完整攻略。如果您在学习过程中有任何疑问,欢迎随时提出。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 使用Pandas.drop()从DataFrame中删除行/列 - Python技术站