python - 如何修复此Python代码中的属性错误:'Series'对象没有属性 'reshape'?

标签 python python-3.x pandas

我正在尝试使用 knn 算法制作推荐系统。我导入了pandas(最新版本0.24)并创建了一个稀疏矩阵。现在我正在使用 reshape 功能,但它显示错误。

我正在使用 Jupyter Notebook。我已经导入了 3 个 CSV。

books = pd.read_csv('C:\\Users\\Shivam Upadhyay\\Desktop\\Project\\books\\BX-Books.csv', sep=';', error_bad_lines=False, encoding="latin-1")
books.columns = ['ISBN', 'bookTitle', 'bookAuthor', 'yearOfPublication', 'publisher', 'imageUrlS', 'imageUrlM', 'imageUrlL']
users = pd.read_csv('C:\\Users\\Shivam Upadhyay\\Desktop\\Project\\books\\BX-Users.csv', sep=';', error_bad_lines=False, encoding="latin-1")
users.columns = ['userID', 'Location', 'Age']
ratings = pd.read_csv('C:\\Users\\Shivam Upadhyay\\Desktop\\Project\\books\\BX-Book-Ratings.csv', sep=';', error_bad_lines=False, encoding="latin-1")
ratings.columns = ['userID', 'ISBN', 'bookRating']

query_index = np.random.choice(us_canada_user_rating_pivot.shape[0])
distances, indices = model_knn.kneighbors(us_canada_user_rating_pivot.iloc[query_index, :].reshape(1, -1), n_neighbors = 6)

for i in range(0, len(distances.flatten())):
    if i == 0:
        print('Recommendations for {0}:\n'.format(us_canada_user_rating_pivot.index[query_index]))
    else:
        print('{0}: {1}, with distance of {2}:'.format(i, us_canada_user_rating_pivot.index[indices.flatten()[i]], distances.flatten()[i]))

---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-4-d2c9c594ec59> in <module>
      1 query_index = np.random.choice(us_canada_user_rating_pivot.shape[0])
----> 2 distances, indices = model_knn.kneighbors(us_canada_user_rating_pivot.iloc[query_index, :].reshape(1, -1), n_neighbors = 6)
      3 
      4 for i in range(0, len(distances.flatten())):
      5     if i == 0:

~\AppData\Roaming\Python\Python37\site-packages\pandas\core\generic.py in __getattr__(self, name)
   5065             if self._info_axis._can_hold_identifiers_and_holds_name(name):
   5066                 return self[name]
-> 5067             return object.__getattribute__(self, name)
   5068 
   5069     def __setattr__(self, name, value):

AttributeError: 'Series' object has no attribute 'reshape'

最佳答案

来自 pandas 文档,

Deprecated since version 0.19.0: Calling this method will raise an error. Please call .values.reshape(...) instead.

参见pandas.Series.reshape了解更多。

关于python - 如何修复此Python代码中的属性错误:'Series'对象没有属性 'reshape'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56607596/

相关文章:

python - RandomizedSearchCv 导致属性错误

python - 如何在Python中计算几何平均值并忽略0

python - 在 Python 脚本中实现多线程

python - 为什么我在python中检测YOLO网络摄像头对象时遇到此错误?

python - 将 pandas 列中的关键字与另一个元素列表匹配

python-3.x - 如何为模型准备测试集形状。使用 keras 和 tensorflow 进行评估?

python - 如何在 to_csv 和 read_csv 之后获得一致的数据类型?

python - 使用python阅读邮件

python - 从文本文件中读取特定行作为 numpy 数组

python - OpenCV 裁剪图像并显示裁剪后的原始图像