我从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?
非常感谢。
答案 0 :(得分:1)
有很多方法可以提取数据,但最简单的方法是:
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字典。