Pandas DataFrame.where()使用示例(6)

作者 : 慕源网 本文共2891个字,预计阅读时间需要8分钟 发布时间: 2021-11-29 共691人阅读

本系列是Python Pandas教程的一部分,您可以点击Python Pandas使用教程查看所有。

Pandas DataFrame.where() 介绍

pandas 中的 where 方法负责在给定条件下搜索pandas 数据结构(如系列或数据框),并将不满足条件的剩余元素替换为某个值。被替换的默认值是 Nan。

语法和参数

以下是语法:

语法:

DataFrame.where(self, cond, other=nan, inplace=False, axis=None, level=None, errors='raise', try_cast=False)

以下是带描述的不同参数:

参数 描述
Cond cond 参数是需要验证的条件将被填充的地方。因此,条件可能是类似数组的、可调用的或涉及的pandas 结构。当这里提到的条件为真时,满足此条件的行之一将保持原样,因此原始值保留在此处不作任何更改。当条件变为假时,条件为假的那些行将被替换为一个非常不同的值。参数部分中的此项是可调用的,因此这意味着它可以从代码的不同部分拉入,并且必须确保条件返回数据帧、数组或布尔值。
Orther 所有错误值或不满足先前给定条件的值都将通过此其他参数进行相应处理。因此,其他中给出的值或数据帧或系列项目将被替换为不满足所述条件的行。同样,另一个参数应返回一个series、数组或数据帧。
inplace  用于判断是否需要在数据所在位置进行操作。
Axis 如果仅考虑多个轴级别,则可以在此处指定轴值。(值应该在 int 中)
Level 如果在级别中考虑对齐,则考虑此参数。(值应该在 int 中)
Try_cast 如果需要执行某些铸造过程,则需要使用布尔表示设置此选项。此选项的默认值为 false。
errors 表示是否需要引发异常。这个选项主要允许控制在异常可能有效发生的情况下是否必须引发异常。(在设置error参数的值是raise还是ignore时需要格外小心)。 

  • Raise:当设置了 raise 参数时,它允许有效地引发异常。
  • Ignore:忽略选项允许控制和忽略发生的异常。

Pandas DataFrame.where() 示例

以下是pandas dataframe.where() 的例子

示例#1

代码:

import pandas as pd
Core_Series = pd.Series([ 10, 20, 30, 40, 50, 60])
print("   THE CORE SERIES ")
print(Core_Series)
Filtered_Series = Core_Series.where(Core_Series >= 50)
print("")
print("   THE FILTERED SERIES ")
print(Filtered_Series)
Filtered_Series_with_replace = Core_Series.where(Core_Series < 50, other=0)
print("")
print("   THE FILTERED SERIES WITH REPLACE")
print(Filtered_Series_with_replace)

输出:

代码说明:这里最初导入的是pandas库,导入的库用于创建series。series中的值以这样的方式制定,即它们是 10 到 60 的series。 然后使用 where a() 方法以两种方式过滤给定series,第一种方式包括默认值 Nan用于替换假值,而在第二个选项中,所有假值都替换为 0。我们可以注意到两个替换选项都非常精确地应用,并且预期的输出完美地显示在控制台上。

示例#2

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame({'A' :  [ 1, 6, 11, 15, 21, 26],
'B' :  [2, 7, 12, 17, 22, 27],
'C' :  [3, 8, 13, 18, 23, 28],
'D' :  [4, 9, 14, 19, 24, 29],
'E' :  [5, 10, 15, 20, 25, 30]})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
Filtered_Dataframe_1 = Core_Dataframe.where(Core_Dataframe >= 15,other=0)
print("")
print("   THE FILTERED DATAFRAME WITH REPLACE")
print(Filtered_Dataframe_1)
print(" THE FILTERED DATAFRAME WITHOUT REPLACE AND INPLACE AS TRUE")
print(" CORE DATAFRAME BEFORE INPLACE:")
print(Core_Dataframe)
Core_Dataframe.where(Core_Dataframe >= 15,axis=0,inplace=True)
print("")
print(" CORE DATAFRAME AFTER INPLACE:")
print(Core_Dataframe)

输出:

代码说明:这里最初导入了pandas 库,导入的库用于创建形状为(6,6) 的数据框。数据框中的所有列都分配有按字母顺序排列的标题。数据框中的值以这样的方式表示,即它们是 1 到 n 的序列。这里再次以两种不同的方式使用 where() 方法。首先,最初将上面生成的核心数据帧打印到控制台上,然后将核心数据帧中大于或等于值 15 的值作为单独的数据帧拉出并粘贴到控制台,在这种情况下全部为 false值被替换为零。where() 方法的下一个实例不涉及执行替换的其他参数,而这里 inplace 参数设置为 true 并设置轴值,因此,设置 inplace 值会将 where 条件的影响应用于主要数据帧,即此处的核心数据帧。所有输出都打印到控制台上。

示例#3

代码:

import pandas as pd
Core_Dataframe = pd.DataFrame({'Emp_No' : ['Emp1','Emp2','Emp3','Emp4'],
'Employee_Name' :  ['Arun', 'selva', 'rakesh', 'arjith'],
'Employee_dept' : ['CAD', 'CAD', 'DEV', 'CAD']})
print("   THE CORE DATAFRAME ")
print(Core_Dataframe)
print("")
Condition = Core_Dataframe['Employee_dept'] == 'CAD'
Core_Dataframe.where(Condition,inplace=True)
print("")
print("   THE UPDATED CORE DATAFRAME ")
print(Core_Dataframe)

输出:

代码说明:这里使用了带有员工信息的输入数据框,我们使用可调用条件过滤特定条件,输出数据框打印到控制台。

总结

这是 Pandas DataFrame.where() 的指南。在这里,我们还讨论了 pandas dataframe.where() 的语法和参数以及不同的示例和代码实现。


慕源网 » Pandas DataFrame.where()使用示例(6)

常见问题FAQ

程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!

发表评论

开通VIP 享更多特权,建议使用QQ登录