Hi-CWJ 2022-05-17 09:27 采纳率: 28.6%
浏览 66

通过pandas怎么筛选出同时满足多个不同条件的数据


level   gender       math    type
0     a    man       120      B
1     b    woman     130     B
2     a    man        110     S

对于这样的数据:怎样筛选出对于相同的level和相同的gender,同时满足type有B和S的行
也就是,通过筛选出这些数据

  level gender    math  type
     a    man      120      B
     a    man      110     S
  • 写回答

2条回答 默认 最新

  • Love And Program 人工智能领域新星创作者 2022-05-18 00:17
    关注

    我靠,可算是肝出来了

    import pandas as pd
    df=pd.read_excel('./pandas_study.xlsx')
    df1=df.head(10)
    print(df1)
    df = df.query('type in ["B","S"]')
    #print(df)
    #分组
    df2 = df.groupby(['level', 'gender']).type.nunique().reset_index()
    df2.columns=['level','gender','num']
    print(df2)
    print("********")
    df2 = df2.set_index(['level', 'gender'])
    print(df2)
    print("********")
    df = df.set_index(['level', 'gender'])
    df['num']=pd.NA
    df.update(df2)
    df = df.query('num>=2&type in ["B","S"]').drop('num', axis=1).reset_index()
    print('\n',df)
    

    下面是我的xlsx

      level gender  math     type
    0     a    man       123    B
    1     b  woman       188    B
    2     a    man        11    S
    3     b    man        23    B
    4     b  woman        23    R
    
    
    评论

报告相同问题?

问题事件

  • 修改了问题 5月17日
  • 修改了问题 5月17日
  • 修改了问题 5月17日
  • 修改了问题 5月17日
  • 展开全部

悬赏问题

  • ¥15 关于#python#的问题,请各位专家解答!
  • ¥20 笔记本电脑 处理器是AMD的r7
  • ¥15 clash节点timeout
  • ¥15 需要在vitis下实现彩调视频图像累加,并输出
  • ¥15 解决不了的LNK2019错误
  • ¥20 MATLAB仿真三相桥式全控整流电路
  • ¥15 EDA技术关于时序电路设计
  • ¥15 百度文心一言流式返回sse失败
  • ¥15 由于远程方已关闭传输流,身份验证失败
  • ¥15 rt-detr,PCB,目标检测