Python 如何将列表循环到loc、isin和sum函数中
我从CSV表单中得到了一个ID列表。该列表的索引为200。使用该列表,我能够从数据框中获得与ID关联的工资 为了匹配它们,我使用了下面的代码。a&b从名为IDlist的列表中匹配第一个ID号的数据中获取薪资,并汇总列出的薪资Python 如何将列表循环到loc、isin和sum函数中,python,pandas,loops,Python,Pandas,Loops,我从CSV表单中得到了一个ID列表。该列表的索引为200。使用该列表,我能够从数据框中获得与ID关联的工资 为了匹配它们,我使用了下面的代码。a&b从名为IDlist的列表中匹配第一个ID号的数据中获取薪资,并汇总列出的薪资 a =df.loc[df['ID'].isin(IDlist[0])].sum(axis=0,skipna=True).loc['salary'] b =df.loc[df['ID'].isin(IDlist[1])].sum(axis=0,skipna=True).loc
a =df.loc[df['ID'].isin(IDlist[0])].sum(axis=0,skipna=True).loc['salary']
b =df.loc[df['ID'].isin(IDlist[1])].sum(axis=0,skipna=True).loc['salary']
当我拿到第一个3分时,我非常高兴。然后意识到我要花很长时间才能通过200
有没有一种方法可以单独循环这个IDlist[0:200],而不必在上面的同一行中键入200
非常感谢。获取数据的方法很多,但最简单的方法是:
salaries = [df.loc[df['ID'].isin(IDlist[x])].sum(axis=0,skipna=True).loc['salary'] for x in range(0,200)]
如果您想将id映射到工资,您可以使用dict理解:
salaries = {IDlist[x]:df.loc[df['ID'].isin(IDlist[x])].sum(axis=0,skipna=True).loc['salary'] for x in range(0,200)}
我假设您的数据结构存在一些问题,但我认为这将为您提供一本与工资相关的ID字典。非常感谢。我现在可以作为一个快乐的露营者上床睡觉了