Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将列表循环到loc、isin和sum函数中_Python_Pandas_Loops - Fatal编程技术网

Python 如何将列表循环到loc、isin和sum函数中

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

我从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['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字典。

非常感谢。我现在可以作为一个快乐的露营者上床睡觉了