pandas 如何在python中自动化代码以基于2个过滤条件获取数据?

nzrxty8p  于 2023-04-28  发布在  Python
关注(0)|答案(1)|浏览(106)

我想获取的输出计数基于2过滤条件2列之间。例如,我有3列有6个名字,6个主题,标记。我想获取的第一个名字,然后每个主题和它的标记,然后第二个名字每个主题和它的标记,然后第三个名字每个主题和它的标记等数据。

names = ['A','B','C','D','E','F']
subjects = ['ABC','XYZ','PQR','EFG','GHT','XUV']

for i,j in [(names,subjects)]:
    a=df_master.loc[(df_master['names']==i) & 
                (df_master['subjects']==j),['Marks']]
    print(a)

我试图使用loc函数获取数据,但它不会帮助。我希望得到每个学生的名字与每个科目及其标记

zkure5ic

zkure5ic1#

在两个列表中使用zip,并选择列表中所有必要的列:

for i,j in zip(names,subjects):
    a=df_master.loc[(df_master['names']==i) & 
                (df_master['subjects']==j),['names','subjects','Marks']]
    print(a)

如果需要在groupby对象中循环所有可能的组合:

for (i,j), g in df_master.groupby(['names','subjects']):
      a = g[['names','subjects','Marks']]
      print(a)

相关问题