pandas dataframe dataframe.dropna() 函数
pandas.dataframe.dropna() 函数通过丢弃包含空值的行或列,从 dataframe
中删除空值(缺失值)。
nan
(not a number
)和 nat
(not a time
)代表空值。dataframe.dropna()
检测这些值并相应地过滤 dataframe
。
pandas.dataframe.dropna()
语法
dataframe.dropna(axis, how, thresh, subset, inplace)
参数
axis |
它决定轴是行还是列。 如果它是 0 或 'index' ,那么它将删除包含缺失值的行。如果它是 1 或 'column' ,那么它将删除包含缺失值的列。默认情况下,它的值是 0 |
how |
这个参数决定函数如何删除行或列。它只接受两个字符串,可以是 all 或 all 。默认情况下,它被设置为 any 。any - 如果行或列中有任何空值,就会删除它。all - 如果行或列中缺少所有值,则放弃该行或列 |
thresh |
它是一个整数,指定了防止行或列丢失的非缺失值的最少数量 |
subset |
它是一个数组,其中有行或列的名称,用于指定删除程序 |
inplace |
它是一个布尔值,如果设置为 true ,将就地改变调用者 dataframe 。默认情况下,它的值是 false |
返回值
它根据传递的参数返回一个过滤后的 dataframe
,其中包含删除的行或列。
示例代码:dataframe.dropna()
删除行
默认情况下,轴为 0,即行,所以所有的输出都有行掉。
import pandas as pd
dataframe=pd.dataframe({'attendance': {0: 60, 1: none, 2: 80,3: none, 4: 95},
'name': {0: 'olivia', 1: 'john', 2: 'laura',3: 'ben',4: 'kevin'},
'obtained marks': {0: none, 1: 75, 2: 82, 3: 64, 4: none}})
print(dataframe)
示例 dataframe
如下。
attendance name obtained marks
0 60.0 olivia nan
1 nan john 75.0
2 80.0 laura 82.0
3 nan ben 64.0
4 95.0 kevin nan
这个函数的所有参数都是可选的。如果我们不传递任何参数,那么函数将丢弃所有包含一个空值的行。
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: 75, 2: 82, 3: 64, 4: none},
}
)
dataframe1 = dataframe.dropna()
print(dataframe1)
输出:
attendance name obtained marks
2 80.0 laura 82.0
丢弃所有包含一个缺失值的行。
示例代码:dataframe.dropna()
删除列
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: 75, 2: 82, 3: 64, 4: none},
}
)
dataframe1 = dataframe.dropna(axis=1)
print(dataframe1)
输出:
name
0 olivia
1 john
2 laura
3 ben
4 kevin
因为我们在 dataframe.dropna()
方法中设置了 axis=1
,所以它删除了所有包含一个缺失值的列。
示例代码:dataframe.dropna()
与 how=all
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: 75, 2: 82, 3: 64, 4: none},
}
)
dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)
输出:
attendance name obtained marks
0 60.0 olivia nan
1 nan john 75.0
2 80.0 laura 82.0
3 nan ben 64.0
4 95.0 kevin nan
包含缺失值的行没有被删除,因为 how
参数的值被设置为 all
,这意味着该行的所有值都应该是空的。
如果在指定的轴上缺少所有的值,那么 dataframe.dropna()
方法会丢弃该轴,即使 how
被设置为 all
。
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: none, 2: none, 3: none, 4: none},
}
)
print(dataframe)
print("--------")
dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)
输出:
attendance name obtained marks
0 60.0 olivia none
1 nan john none
2 80.0 laura none
3 nan ben none
4 95.0 kevin none attendance name
0 60.0 olivia
1 nan john
2 80.0 laura
3 nan ben
4 95.0 kevin
示例代码:dataframe.dropna()
与指定的子集或阈值
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: 75, 2: 82, 3: 64, 4: none},
}
)
dataframe1 = dataframe.dropna(thresh=3)
print(dataframe1)
输出:
attendance name obtained marks
2 80.0 laura 82.0
thresh
的值是 3,这意味着为了防止掉落,至少需要 3 个非空值。
我们也可以指定 subset
。
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: 75, 2: 82, 3: 64, 4: none},
}
)
dataframe1 = dataframe.dropna(subset=["attendance", "name"])
print(dataframe1)
输出:
attendance name obtained marks
0 60.0 olivia nan
2 80.0 laura 82.0
4 95.0 kevin nan
根据 attendance
和 name
列,删除缺失值的行。如果只有其他列中的值比如这里的 obtained marks
列有缺失值,它就不会删除记录。
示例代码:dataframe.dropna()
与 inplace=true
dataframe.dropna()
如果 inplace
被设置为 true
,则调用者 dataframe
就地改变。
import pandas as pd
dataframe = pd.dataframe(
{
"attendance": {0: 60, 1: none, 2: 80, 3: none, 4: 95},
"name": {0: "olivia", 1: "john", 2: "laura", 3: "ben", 4: "kevin"},
"obtained marks": {0: none, 1: 75, 2: 82, 3: 64, 4: none},
}
)
dataframe1 = dataframe.dropna(inplace=true)
print(dataframe1)
输出:
none
该参数对调用者 dataframe
进行了原地修改,返回 none
。
转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处
本文地址:
相关文章
pandas dataframe dataframe.shift() 函数
发布时间:2024/04/24 浏览次数:133 分类:python
-
dataframe.shift() 函数是将 dataframe 的索引按指定的周期数进行移位。
python pandas.pivot_table() 函数
发布时间:2024/04/24 浏览次数:82 分类:python
-
python pandas pivot_table()函数通过对数据进行汇总,避免了数据的重复。
pandas read_csv()函数
发布时间:2024/04/24 浏览次数:254 分类:python
-
pandas read_csv()函数将指定的逗号分隔值(csv)文件读取到 dataframe 中。
pandas 多列合并
发布时间:2024/04/24 浏览次数:628 分类:python
-
本教程介绍了如何在 pandas 中使用 dataframe.merge()方法合并两个 dataframes。
pandas loc vs iloc
发布时间:2024/04/24 浏览次数:837 分类:python
-
本教程介绍了如何使用 python 中的 loc 和 iloc 从 pandas dataframe 中过滤数据。
在 python 中将 pandas 系列的日期时间转换为字符串
发布时间:2024/04/24 浏览次数:894 分类:python
-
了解如何在 python 中将 pandas 系列日期时间转换为字符串