Pandas DataFrame Drop函数介绍
在使用Pandas读取数据后,我们可能需要对数据进行处理和清洗。其中,删除DataFrame中的某些行或列是常见的操作之一。Pandas中提供了df.drop()
函数来满足这一需求。
函数语法
df.drop(labels=None, axis=0, index=None, columns=None, level=None, inplace=False, errors='raise')
参数说明:
labels
:可选,要删除的行或列的索引或标签。axis
:可选,指定删除行或列,0表示行,1表示列,默认为0。index
和columns
:可选,与labels
参数作用相同。level
:用于MultiIndex的层级数。inplace
:可选,如果为True,则修改原始DataFrame,否则不修改。errors
:可选,如果遇到不存在的索引或标签,如何处理。默认为raise,也可以选择ignore。
示例1
我们根据一个学生考试的DataFrame来演示该函数的使用。
import pandas as pd
data = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'age': [18, 20, 21, 19],
'score': [82, 92, 76, 88]}
df = pd.DataFrame(data)
print(df)
输出结果为:
name age score
0 Alice 18 82
1 Bob 20 92
2 Charlie 21 76
3 David 19 88
现在我们要删除age
这一列,可以使用以下代码:
df.drop('age', axis=1, inplace=True)
print(df)
输出结果为:
name score
0 Alice 82
1 Bob 92
2 Charlie 76
3 David 88
可以看到,axis=1
表示删除列,inplace=True
表示在原始DataFrame上进行修改,'age'
为要删除的列名。
示例2
我们现在有一个包含多个子DataFrame的DataFrame,每个子DataFrame都是一个学校的成绩,我们要将其中一些学校的成绩删除。
import pandas as pd
import numpy as np
data1 = {'name': ['Alice', 'Bob', 'Charlie', 'David'],
'score': [82, 92, 76, 88]}
data2 = {'name': ['Eva', 'Frank', 'Grace', 'Henry'],
'score': [90, 85, 80, 88]}
data3 = {'name': ['Ivy', 'Jack', 'Kelly', 'Lucy'],
'score': [95, 89, 84, 82]}
df1 = pd.DataFrame(data1, index=['a', 'b', 'c', 'd'])
df2 = pd.DataFrame(data2, index=['e', 'f', 'g', 'h'])
df3 = pd.DataFrame(data3, index=['i', 'j', 'k', 'l'])
df_schools = pd.concat([df1, df2, df3])
print(df_schools)
输出结果为:
name score
a Alice 82
b Bob 92
c Charlie 76
d David 88
e Eva 90
f Frank 85
g Grace 80
h Henry 88
i Ivy 95
j Jack 89
k Kelly 84
l Lucy 82
我们要删除df1
和df3
这两个子DataFrame,可以使用以下代码:
df_schools.drop(index=['a', 'c', 'd', 'i', 'k', 'l'], inplace=True)
print(df_schools)
输出结果为:
name score
e Eva 90
f Frank 85
g Grace 80
h Henry 88
j Jack 89
可以看到,index
参数指定要删除的行,多行用列表形式传入。inplace=True
表示在原始DataFrame上进行修改。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:pandas dataframe drop函数介绍 - Python技术站