Pandas – DataFrame.where()
Python是一种做数据分析的伟大语言,主要是因为以数据为中心的Python软件包的奇妙生态系统。 Pandas 是这些包中的一个,使导入和分析数据变得更加容易。
Pandas where()方法是用来检查一个DataFrame的一个或多个条件,并返回相应的结果。默认情况下,不满足条件的行会被填充为NaN值。
语法:
DataFrame.where (cond, other=nan, inplace=False, axis=None, level=None, errors=’raising’, try_cast=False, raise_on_error=None)参数:
cond: 一个或多个检查DataFrame的条件。
other: 用用户定义的对象替换不满足条件的行,默认为NaN。
inplace: 布尔值,如果为真,则在DataFrame本身进行更改
axis: 检查的轴(行或列)。
例子#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:多条件操作
数据是在球队和年龄的基础上过滤的。只有球队名称为 “Atlanta Hawks”和年龄在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
输出:
如输出图片所示,只有球队名称为 “Atlanta Hawks”和年龄超过24岁的球员的行被显示出来。