Pb:"不再支持将类似列表的内容传递给缺少任何标签的 .loc 或 []



我正试图使用列表理解将数据插入到社区级别,但我在这篇文章中不断收到对象中的错误。

print("Interpolating engineered features to commune level...")
covidExtraToCom[['1MMaxpm25','1MMaxpm10','1MMaxo3','1MMaxno2','1MMaxco','pm107davg','pm257davg','o37davg','no27davg','co7davg','pm101Mavg',
'pm251Mavg','o31Mavg','no21Mavg','co1Mavg','population','hospi','CovidPosTest' ]] 
= [dfpollution3[dfpollution3['numero'] == depNum].reindex(columns = ['1MMaxpm25','1MMaxpm10','1MMaxo3','1MMaxno2','1MMaxco','pm107davg','pm257davg','o37davg','no27davg','co7davg','pm101Mavg',
'pm251Mavg','o31Mavg','no21Mavg','co1Mavg','idx','hospi','CovidPosTest' ]).values.squeeze() for depNum in covidExtraToCom['dep']]
KeyError: 'Passing list-likes to .loc or [] with any missing labels is no longer supported, see https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#deprecate-loc-reindex-listlike'

下面的替代代码有效,但似乎不适合计算时间:

# covidExtraToCom['1MMaxpm25'] = [dfpollution3[dfpollution3['numero'] == depNum]["1MMaxpm25"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("1MMaxpm25 interpolated!")
# covidExtraToCom['1MMaxpm10'] = [dfpollution3[dfpollution3['numero'] == depNum]["1MMaxpm10"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("1MMaxpm10 interpolated!")
# covidExtraToCom['1MMaxo3'] = [dfpollution3[dfpollution3['numero'] == depNum]["1MMaxo3"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("1MMaxo3 interpolated!")
# covidExtraToCom['1MMaxno2'] = [dfpollution3[dfpollution3['numero'] == depNum]["1MMaxno2"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("1MMaxno2 interpolated!")
# covidExtraToCom['1MMaxco'] = [dfpollution3[dfpollution3['numero'] == depNum]["1MMaxco"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("1MMaxco interpolated!")
# covidExtraToCom['pm107davg'] = [dfpollution3[dfpollution3['numero'] == depNum]["pm107davg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("pm107davg interpolated!")
# covidExtraToCom['pm257davg'] = [dfpollution3[dfpollution3['numero'] == depNum]["pm257davg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("pm257davg interpolated!")
# covidExtraToCom['o37davg'] = [dfpollution3[dfpollution3['numero'] == depNum]["o37davg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("o37davg interpolated!")
# covidExtraToCom['no27davg'] = [dfpollution3[dfpollution3['numero'] == depNum]["no27davg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("no27davg interpolated!")
# covidExtraToCom['co7davg'] = [dfpollution3[dfpollution3['numero'] == depNum]["co7davg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("co7davg interpolated!")
# covidExtraToCom['pm101Mavg'] = [dfpollution3[dfpollution3['numero'] == depNum]["pm101Mavg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("pm101Mavg interpolated!")
# covidExtraToCom['pm251Mavg'] = [dfpollution3[dfpollution3['numero'] == depNum]["pm251Mavg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("pm251Mavg interpolated!")
# covidExtraToCom['o31Mavg'] = [dfpollution3[dfpollution3['numero'] == depNum]["o31Mavg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("o31Mavg interpolated!")
# covidExtraToCom['no21Mavg'] = [dfpollution3[dfpollution3['numero'] == depNum]["no21Mavg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("no21Mavg interpolated!")
# covidExtraToCom['co1Mavg'] = [dfpollution3[dfpollution3['numero'] == depNum]["co1Mavg"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("co1Mavg interpolated!")
# covidExtraToCom['population'] = [dfpollution3[dfpollution3['numero'] == depNum]["idx"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("population interpolated!")
# covidExtraToCom['hospi'] = [dfpollution3[dfpollution3['numero'] == depNum]["hospi"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("hospi interpolated!")
# covidExtraToCom['CovidPosTest'] = [dfpollution3[dfpollution3['numero'] == depNum]["CovidPosTest"].values.squeeze() for depNum in covidExtraToCom['dep']]
# print("CovidPosTest interpolated!")

有什么想法吗?

为什么不直接的for-in循环?

columns = ['1MMaxpm25','1MMaxpm10','1MMaxo3','1MMaxno2','1MMaxco','pm107davg','pm257davg','o37davg','no27davg','co7davg','pm101Mavg',
'pm251Mavg','o31Mavg','no21Mavg','co1Mavg','population','hospi','CovidPosTest' ]
for col in columns:
covidExtraToCom[col] = [dfpollution3[dfpollution3['numero'] == depNum][col].values.squeeze() for depNum in covidExtraToCom['dep']]

相关内容

最新更新