Pandas – DataFrame.dropna()

Pandas – DataFrame.dropna()

Python是一种进行数据分析的伟大语言,主要是因为以数据为中心的Python包的奇妙生态系统。Pandas就是这些包中的一个,它使导入和分析数据变得更加容易。

有时csv文件有空值,这些空值会在数据框中显示为NaN。Pandas dropna()方法允许用户以不同的方式分析和删除有空值的行/列。

语法:

DataFrameName.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

参数:

axis: axis对于行/列来说,使用的是int或string值。对于整数来说,输入可以是0或1;对于字符串来说,输入 “index “或 “columns”。

how:how只接受两种类型的字符串值(’any’或’all’)。如果任何值是空的,’any’将删除该行/列,’all’只在所有值都是空的情况下删除。

thresh: 阈值是一个整数,告诉人们要删除的最小数量的na值。
subset: 这是一个数组,它将丢弃过程限制在通过列表的行/列。
inplace: 这是一个布尔值,如果为真,则在数据框架本身中进行更改。

关于代码中使用的CSV文件的链接,请点击这里

例子#1:删除至少有一个空值的行。

读取数据框架,所有具有任何Null值的行都被删除。比较新旧数据框的大小,看有多少行至少有一个Null值。

# importing pandas module
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba.csv")
  
# making new data frame with dropped NA values
new_data = data.dropna(axis = 0, how ='any')
  
# comparing sizes of data frames
print("Old data frame length:", len(data), "\nNew data frame length:", 
       len(new_data), "\nNumber of rows with at least 1 NA value: ",
       (len(data)-len(new_data)))

输出:

Old data frame length:  458 
New data frame length:  364 
Number of rows with at least 1 NA value:  94

因为差值是94,所以有94行在任何一列中至少有一个空值。

例子#2:改变轴线并使用how和inplace参数

制作了两个数据框架。在新的数据框架中加入一个所有值=无的列。检验列名,看是否正确插入了Null列。然后比较删除NaN值之前和之后的列数。

# importing pandas module
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba.csv")
  
# making a copy of old data frame
new = pd.read_csv("nba.csv")
  
# creating a value with all null values in new data frame
new["Null Column"]= None
  
# checking if column is inserted properly 
print(data.columns.values, "\n", new.columns.values)
  
# comparing values before dropping null column
print("\nColumn number before dropping Null column\n",
       len(data.dtypes), len(new.dtypes))
  
# dropping column with all null values
new.dropna(axis = 1, how ='all', inplace = True)
  
# comparing values after dropping null column
print("\nColumn number after dropping Null column\n",
      len(data.dtypes), len(new.dtypes))

输出:

['Name' 'Team' 'Number' 'Position' 'Age' 'Height' 'Weight' 'College'
 'Salary'] 
 ['Name' 'Team' 'Number' 'Position' 'Age' 'Height' 'Weight' 'College'
 'Salary' 'Null Column']

Column number before dropping Null column
 9 10

Column number after dropping Null column
 9 9

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程