如何使用多列条件过滤Pandas数据帧中的记录?

2026-06-11 05:031阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计348个文字,预计阅读时间需要2分钟。

如何使用多列条件过滤Pandas数据帧中的记录?

要按性别过滤数据框(df),如果我们要考虑男性和女性的数据,我们可以这样做:

如何使用多列条件过滤Pandas数据帧中的记录?

pythonmales=df[df['Gender']=='Male']

但如果数据跨越多年,而你只想看2014年的男性数据,可以这样操作:

pythonmales_2014=df[(df['Gender']=='Male') & (df['Year']==2014)]

要按单列过滤数据框(df),如果我们考虑男性和女性的数据,我们可能会:

males = df[df[Gender]=='Male']

问题1 – 但如果数据跨越多年并且我只想看2014年的男性怎么办?

在其他语言中,我可能会这样做:

if A = "Male" and if B = "2014" then

(除了我想这样做并在新的dataframe对象中获取原始数据帧的子集)

问题2.如何在循环中执行此操作,并为每个独特的年份和性别集创建数据框对象(即:2013年男性,2013年女性,2014年男性和2014年女性的df

for y in year: for g in gender: df = ..... 使用&运算符,不要忘记用()包装子语句:

males = df[(df[Gender]=='Male') & (df[Year]==2014)]

使用for循环将数据帧存储在dict中:

from collections import defaultdict dic={} for g in ['male', 'female']: dic[g]=defaultdict(dict) for y in [2013, 2014]: dic[g][y]=df[(df[Gender]==g) & (df[Year]==y)] #store the DataFrames to a dict of dict

编辑:

getDF的演示:

def getDF(dic, gender, year): return dic[gender][year] print genDF(dic, 'male', 2014)

本文共计348个文字,预计阅读时间需要2分钟。

如何使用多列条件过滤Pandas数据帧中的记录?

要按性别过滤数据框(df),如果我们要考虑男性和女性的数据,我们可以这样做:

如何使用多列条件过滤Pandas数据帧中的记录?

pythonmales=df[df['Gender']=='Male']

但如果数据跨越多年,而你只想看2014年的男性数据,可以这样操作:

pythonmales_2014=df[(df['Gender']=='Male') & (df['Year']==2014)]

要按单列过滤数据框(df),如果我们考虑男性和女性的数据,我们可能会:

males = df[df[Gender]=='Male']

问题1 – 但如果数据跨越多年并且我只想看2014年的男性怎么办?

在其他语言中,我可能会这样做:

if A = "Male" and if B = "2014" then

(除了我想这样做并在新的dataframe对象中获取原始数据帧的子集)

问题2.如何在循环中执行此操作,并为每个独特的年份和性别集创建数据框对象(即:2013年男性,2013年女性,2014年男性和2014年女性的df

for y in year: for g in gender: df = ..... 使用&运算符,不要忘记用()包装子语句:

males = df[(df[Gender]=='Male') & (df[Year]==2014)]

使用for循环将数据帧存储在dict中:

from collections import defaultdict dic={} for g in ['male', 'female']: dic[g]=defaultdict(dict) for y in [2013, 2014]: dic[g][y]=df[(df[Gender]==g) & (df[Year]==y)] #store the DataFrames to a dict of dict

编辑:

getDF的演示:

def getDF(dic, gender, year): return dic[gender][year] print genDF(dic, 'male', 2014)