Pandas DataFrame DataFrame.where() 函数
Python Pandas DataFrame.where() 函数接受一个条件作为参数,并产生相应的结果。它对 DataFrame
的每个值进行条件检查,并选择接受条件的值。它的功能类似于 if-else 语句。不接受条件的值会被默认的 NaN
值代替。
pandas.DataFrame.where()
的语法
DataFrame.where(
cond,
other=NaN,
inplace=False,
axis=None,
level=None,
errors="raise",
try_cast=False,
)
参数
这个函数有几个参数。以上是所有参数的默认值。
cond |
它是一个布尔值 Series 或 DataFrame ,一个数组样的结构或一个可调用的结构。它代表了对 DataFrame 的每个值进行检查的条件/条件。如果条件是 True ,那么原始值不会被替换。否则,就会被一个 NaN 值替换。 |
other |
它是一个标量,Series /DataFrame ,或一个可调用的函数。它表示如果条件为 False ,将为原始值放置的值。 |
inplace |
它是一个布尔值。它告诉我们对数据的操作。如果为 True ,它将自己进行修改。 |
axis |
它是一个整数值。它告诉工作轴的行或列。 |
level |
它是一个整数值。它说明了级别。 |
errors |
它是一个字符串。它讲述了错误的情况。它接受两个选项:raise 或 ignore 。如果它的值是 raise ,那么它允许提出异常。如果它的值是 ignore ,那么它将忽略异常,如果有错误,则返回原始对象。 |
try_cast |
它是一个布尔值。如果可能,它将函数的输出转换为原始输入类型。 |
返回值
它根据条件返回改变后的 DataFrame
。
示例代码:DataFrame.where()
我们将在下一个代码示例中通过实现这个函数来进一步了解它。
import pandas as pd
dataframe=pd.DataFrame({
'A':
{0: 60,
1: 100,
2: 80,
3: 78,
4: 95,
5: 45,
6: 67,
7: 12,
8: 23,
9: 50},
'B':
{0: 90,
1: 75,
2: 82,
3: 64,
4: 45,
5: 35,
6: 74,
7: 52,
8: 93,
9: 18}
})
print(dataframe)
示例 DataFrame
就是。
A B
0 60 90
1 100 75
2 80 82
3 78 64
4 95 45
5 45 35
6 67 74
7 12 52
8 23 93
9 50 18
该函数有一个必选参数,即 cond
。
import pandas as pd
dataframe = pd.DataFrame(
{
"A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
"B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
}
)
dataframe1 = dataframe.where(dataframe > 50)
print(dataframe1)
输出:
A B
0 60.0 90.0
1 100.0 75.0
2 80.0 82.0
3 78.0 64.0
4 95.0 NaN
5 NaN NaN
6 67.0 74.0
7 NaN 52.0
8 NaN 93.0
9 NaN NaN
不大于 50 的值,即不满足条件的值将被一个 NaN
值代替。
示例代码:DataFrame.where()
指定一个值
import pandas as pd
dataframe = pd.DataFrame(
{
"A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
"B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
}
)
dataframe1 = dataframe.where(dataframe > 50, other=0)
print(dataframe1)
输出:
A B
0 60 90
1 100 75
2 80 82
3 78 64
4 95 0
5 0 0
6 67 74
7 0 52
8 0 93
9 0 0
在这里,不符合条件的值被用户定义的值代替。
示例代码:DataFrame.where()
使用多个条件
import pandas as pd
dataframe = pd.DataFrame(
{
"A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
"B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
}
)
dataframe1 = dataframe.where((dataframe == 80) | (dataframe < 50), other=0)
print(dataframe1)
输出:
A B
0 0 0
1 0 0
2 80 0
3 0 0
4 0 45
5 45 35
6 0 0
7 12 0
8 23 0
9 0 18
返回的 DataFrame
包含符合这两个条件的值。
相关文章
DataFrame 获取给定列的第一行
发布时间:2024/04/22 浏览次数:51 分类:Python
-
本教程介绍了如何在 Pandas DataFrame 中使用 Series.loc()和 Series.iloc()方法获取给定列的第一行。
如何基于 Pandas 中的给定条件创建 DataFrame 列
发布时间:2024/04/22 浏览次数:147 分类:Python
-
我们可以使用列表推导技术,numpy 方法,apply()方法和 map()方法对 Pandas 中的给定条件创建 DataFrame 列。
在 Pandas 的 DataFrame 中合并两列文本
发布时间:2024/04/22 浏览次数:99 分类:Python
-
在 Pandas 库中使用 + 运算符,apply(),map(),str.cat(),agg()方法在 DataFrame 中合并列
Pandas DataFrame DataFrame.append() 函数
发布时间:2024/04/22 浏览次数:92 分类:Python
-
Pandas 中的 append 方法将两个不同 DataFrame 的行合并,并返回新的 DataFrame。
Pandas DataFrame DataFrame.apply() 函数
发布时间:2024/04/22 浏览次数:172 分类:Python
-
Pandas DataFrame apply()函数将输入的函数应用到 Pandas DataFrame 的每一个沿行或沿列的元素。
Pandas DataFrame DataFrame.aggregate() 函数
发布时间:2024/04/22 浏览次数:98 分类:Python
-
Pandas DataFrame aggregate()函数对 DataFrame 的列或行进行聚合。