首页 > 解决方案 > Pandas DataFrame KeyError 1

问题描述

我尝试使用以下代码启动Pandas

if USER_RATINGS:
  my_ratings = pd.DataFrame.from_records(worksheet.get_all_values()).reset_index()
  my_ratings = my_ratings[my_ratings[1] != '']
  my_ratings = pd.DataFrame({
      'user_id': "943",
      'title':list(map(str, my_ratings[0])),
      'listen_count': list(map(float, my_ratings[1]))
  })
my_ratings.merge(song_df_2, on="title", how="left")
song_df = song_df[song_df.user_id != "943"]
song_df = song_df.append(my_ratings, ignore_index=True)
if users.shape[0] == 943:
  users = users.append(users.iloc[942], ignore_index=True)
  users["user_id"][943] = "943"
print("Added your %d ratings; you have great taste!" % len(my_ratings))
song_df[song_df.user_id=="943"].merge(music[['song_id', 'title']])

但是我在下面遇到以下错误:

During handling of the above exception, another exception occurred:
KeyError
Traceback (most recent call last)
2 frames
/usr/local/lib/python3.6/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
   2897                 return self._engine.get_loc(key)
   2898             except KeyError:
-> 2899                 return self._engine.get_loc(self._maybe_cast_indexer(key))
[...]
KeyError: 1

你能帮我弄清楚如何解决这个问题吗?

标签: pythonpandasdataframerecommender-systems

解决方案


my_ratings = my_ratings[my_ratings[1] != '']

看起来 1 (Key) 不是列名 (KeyError)。如果此语句的目的是删除空行,请尝试以下操作:

my_ratings.dropna(inplace=True)

希望这可以帮助!


推荐阅读