Python| Pandas DataFrame.where()
Python是一种用于进行数据分析的出色语言,主要是因为以数据为中心的Python包的奇妙生态系统。 Pandas就是其中之一,它使导入和分析数据变得更加容易。
Pandas where()
方法用于检查数据框的一个或多个条件并相应地返回结果。默认情况下,不满足条件的行用 NaN 值填充。
Syntax:
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None, errors=’raise’, try_cast=False, raise_on_error=None)
Parameters:
cond: One or more condition to check data frame for.
other: Replace rows which don’t satisfy the condition with user defined object, Default is NaN
inplace: Boolean value, Makes changes in data frame itself if True
axis: axis to check( row or columns)
有关所用 CSV 文件的链接,请单击此处。
示例 #1:单条件操作
在此示例中,将显示具有特定团队名称的行,其余行将使用 .where() 方法替换为 NaN。
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("nba.csv")
# sorting dataframe
data.sort_values("Team", inplace = True)
# making boolean series for a team name
filter = data["Team"]=="Atlanta Hawks"
# filtering data
data.where(filter, inplace = True)
# display
data
输出:
如输出图像所示,没有 Team = Atlanta Hawks 的每一行都被替换为 NaN。
示例 #2:多条件操作
根据团队和年龄过滤数据。仅显示球队名称为“亚特兰大老鹰队”的行和年龄超过 24 岁的球员。
# importing pandas package
import pandas as pd
# making data frame from csv file
data = pd.read_csv("nba.csv")
# sorting dataframe
data.sort_values("Team", inplace = True)
# making boolean series for a team name
filter1 = data["Team"]=="Atlanta Hawks"
# making boolean series for age
filter2 = data["Age"]>24
# filtering data on basis of both filters
data.where(filter1 & filter2, inplace = True)
# display
data
输出:
如输出图像所示,仅显示球队名称为“亚特兰大老鹰队”的行和年龄超过 24 岁的球员。