小编auk*_*123的帖子

如何进行多个查询?

我想做多个查询。这是我的数据框:

data = {'Name':['Penny','Ben','Benny','Mark','Ben1','Ben2','Ben3'], 
        'Eng':[5,1,4,3,1,2,3], 
        'Math':[1,5,3,2,2,2,3],
        'Physics':[2,5,3,1,1,2,3],
        'Sports':[4,5,2,3,1,2,3],
        'Total':[12,16,12,9,5,8,12],
        'Group':['A','A','A','A','A','B','B']}

df1=pd.DataFrame(data, columns=['Name','Eng','Math','Physics','Sports','Total','Group']) 
df1
Run Code Online (Sandbox Code Playgroud)

我有 3 个查询:

  1. A组或B组
  2. 数学 > Eng
  3. 名称以“B”开头

我试着一一做

df1[df1.Name.str.startswith('B')]
df1.query('Math > Eng')
df1[df1.Group == 'A'] #I cannot run the code with df1[df1.Group == 'A' or 'B']
Run Code Online (Sandbox Code Playgroud)

然后,我尝试合并这些查询

df1.query("'Math > Eng' & 'df1[df1.Name.str.startswith('B')]' & 'df1[df1.Group == 'A']")
TokenError: ('EOF in multi-line statement', (2, 0))
Run Code Online (Sandbox Code Playgroud)

我也试图通过str.startswith()进入df.query()

df1.query("df1.Name.str.startswith('B')")
UndefinedVariableError: name 'df1' is not defined
Run Code Online (Sandbox Code Playgroud)

我尝试了很多方法,但没有一个有效。我怎样才能把这些查询放在一起?

python dataframe pandas

7
推荐指数
1
解决办法
243
查看次数

标签 统计

dataframe ×1

pandas ×1

python ×1