猿问

使用 Pandas 中的函数替换列中的 NaN 时遇到索引越界错误

我正在尝试使用以下函数替换 NAN 值,但我得到的索引超出界限错误。这是我的示例数据框。它有列(日期、中心名称、商品名称、价格、年份)。我正在尝试根据相应的年份和中心名称列使用价格的 MODE() 替换价格列缺失值。


例如,对于 1997 年和 Centre_Name='SHIMLA',我使用下面的代码来替换 Price 列的缺失值并且它正在工作。


data.loc[(data['Year']==1997)&(data['Centre_Name']=='SHIMLA')&(data['Price'].isnull()),'Price']=data.loc[(data['Year']==1997)&(data['Centre_Name']=='SHIMLA'),'Price'].mode()[0]

但是下面的功能不起作用。请帮忙


year_list=list(data['Year'].unique())

for each_year in year_list:

    city_list=list(data[data['Year']==each_year]['Centre_Name'].unique())

    for each_city in city_list:

        data.loc[(data['Year']==each_year)&(data['Centre_Name']==each_city)&(data['Price'].isnull()),'Price']=data.loc[(data['Year']==each_year)&(data['Centre_Name']==each_city),'Price'].mode()[0]


catspeake
浏览 93回答 1
1回答

慕标5832272

在第二个脚本中替换data.iloc为data.loc
随时随地看视频慕课网APP

相关分类

Python
我要回答