Pandas教程-Pandas DataFrame.dropna()
如果您的数据集包含空值,我们可以使用 dropna()
函数来分析和删除数据集中的行/列。
语法:
DataFrameName.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
参数:
- axis :{0 或 'index',1 或 'columns'},默认值 0
它接受整数或字符串值用于行/列。对于整数,输入可以是 0 和 1,对于字符串,输入可以是 'index' 或 'columns'。 - 0,或 'index': 删除包含缺失值的行。
- 1,或 'columns': 删除包含缺失值的列。
- how :它确定当我们至少有一个 NA 或所有 NA 时,从 DataFrame 中删除行或列。
它采用两种类型的字符串值之一('any' 或 'all')。 - any: 如果任何值为 null,则删除行/列。
- all: 仅在所有值为 null 时才删除。
- thresh: 它接受整数值,定义要删除的最小 NA 值数量。
- subset: 它是一个数组,通过列表限制删除过程。
- inplace: 它返回一个布尔值,如果为 True,则在数据框本身进行更改。
返回值
它返回已删除 NA 条目的 DataFrame。
首先,我们将采用一个包含任何列的 csv 文件来演示它将如何从数据集中删除任何列。
import pandas as pd
aa = pd.read_csv("aa.csv")
aa.head()
输出
Name | Hire Date | Salary | Leaves Remaining |
---|---|---|---|
0 John Idle 03/15/14 | 50000.0 | 10 | |
1 Smith Gilliam | 06/01/15 | 65000.0 | 8 |
2 Parker Chapman | 05/12/14 | 45000.0 | 10 |
3 Jones Palin | 11/01/13 | 70000.0 | 3 |
4 Terry Gilliam | 08/12/14 | 48000.0 | 7 |
5 Michael Palin | 05/23/13 | 66000.0 | 8 |
代码:
# importing pandas module
import pandas as pd
# making data frame from csv file
info = pd.read_csv("aa.csv")
# making a copy of old data frame
copy = pd.read_csv("aa.csv")
# creating value with all null values in new data frame
copy["Null Column"]= None
# checking if column is inserted properly
print(info.columns.values, "\n", copy.columns.values)
# comparing values before dropping null column
print("\nColumn number before dropping Null column\n",
len(info.dtypes), len(copy.dtypes))
# dropping column with all null values
copy.dropna(axis = 1, how ='all', inplace = True)
# comparing values after dropping null column
print("\nColumn number after dropping Null column\n",
len(info.dtypes), len(info.dtypes))
输出
[' Name Hire Date Salary Leaves Remaining']
[' Name Hire Date Salary Leaves Remaining'
'Null Column']
Column number before dropping Null column
1 2
Column number after dropping Null column
1 1
上面的代码从数据集中删除了 null 列,并返回了一个新的 DataFrame。