Python数据分析

Python数据分析 知识量:13 - 56 - 232

7.4 数据删除><

删除列- 7.4.1 -

使用drop()函数来删除数据对象中的列,参数为要删除列的名称或列的位置。当参数是列名或位置时,还需要指定参数axis=1,表示删除列。当以列表的形式指定参数columns时,就不需要axis参数了。下面是删除列的示例:

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df.drop(['Chinese','English'],axis=1),'\n')  # 指定列的名称
print(df.drop(df.columns[[1,4]],axis=1),'\n')  # 指定列的位置
print(df.drop(columns=['Name','Sex']))  # 以列表来指定参数columns

运行结果为:

       Name     Sex  Math
0      Noah    male    66
1      Emma  female    55
2      Noah    male    66
3    Olivia  female    44
4      Liam    male    69
5    Sophia  female    96
6      Liam    male    69
7  Isabella  female    55 

       Name  Chinese  English
0      Noah       90       50
1      Emma       56       56
2      Noah       90       50
3    Olivia       86       87
4      Liam       55       88
5    Sophia       90       66
6      Liam       55       88
7  Isabella       66       85 

   Chinese  English  Math
0       90       50    66
1       56       56    55
2       90       50    66
3       86       87    44
4       55       88    69
5       90       66    96
6       55       88    69
7       66       85    55

删除行- 7.4.2 -

删除行的操作与删除列相似,仍然使用drop()函数。不同的是,需要使用参数index,且axis=0。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df.drop([0,1,2],axis=0),'\n')  # 指定行的名称
print(df.drop(df.index[[3,4,5]],axis=0),'\n')  # 指定行的位置
print(df.drop(index=[6,7]))  # 以列表来指定参数index

运行结果为:

       Name     Sex  Chinese  English  Math
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

     Name     Sex  Chinese  English  Math
0    Noah    male       90       50    66
1    Emma  female       56       56    55
2    Noah    male       90       50    66
3  Olivia  female       86       87    44
4    Liam    male       55       88    69
5  Sophia  female       90       66    96

依条件删除行- 7.4.3 -

在按照某个条件删除行时,采用的方式并不是直接删除该行,而是排除不满足条件的行后,以筛选后的数据建立新的数据对象。

import pandas as pd
df=pd.read_excel(r"D:\PythonTestFile\exam.xlsx")
print(df,'\n')
new_df=df[df['Chinese']>60]  # 删除Chinese<40的行
print(new_df)

运行结果为:

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
1      Emma  female       56       56    55
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
4      Liam    male       55       88    69
5    Sophia  female       90       66    96
6      Liam    male       55       88    69
7  Isabella  female       66       85    55 

       Name     Sex  Chinese  English  Math
0      Noah    male       90       50    66
2      Noah    male       90       50    66
3    Olivia  female       86       87    44
5    Sophia  female       90       66    96
7  Isabella  female       66       85    55