Python 使用列表理解填写字典

Python 使用列表理解填写字典,python,pandas,dictionary-comprehension,Python,Pandas,Dictionary Comprehension,有没有办法用列表替换这个语法 for w in loc: dict_filter_data[w] = df.loc[df['location'] == w] 如果可能,会更快吗?您可以执行以下操作: dict_filter_data = dict(df.loc[df['location'].isin(loc)] .groupby('location').__iter__() ) 如果lo

有没有办法用列表替换这个语法

for w in loc:
    dict_filter_data[w] = df.loc[df['location'] == w]
如果可能,会更快吗?

您可以执行以下操作:

dict_filter_data = dict(df.loc[df['location'].isin(loc)]
                          .groupby('location').__iter__()
                       )
如果
loc
包含所有唯一的
位置
值​​那么你只需要:

dict_filter_data= dict(df.groupby('location').__iter__())
请注意,强烈建议在此处使用groupby,它比使用for循环快得多。但你可以做到:

dict_filter_data = {w : df.loc[df['location'] == w] for w in loc}
如果您想更新dict\u filter\u数据(不是空启动)

dict_filter_data.update(dict(df.loc[df['location'].isin(loc)]
                               .groupby('location').__iter__()
                            )
                       )


dict\u filter\u data
是否有以前的值,还是开始时为空?开始时为空
dict_filter_data = dict(dict_filter_data, 
                        **dict(df.loc[df['location'].isin(loc)]
                                 .groupby('location').__iter__()
                              )
                        )