在推荐系统中将sqlite表读取为csv文件时出现问题

时间:2019-02-12 10:11:39

标签: django python-3.x pandas collaborative-filtering

我必须为我的推荐系统导入一个评级sqlite表作为csv文件。 Recommendationer.py看起来像这样:

import pandas as pd
import numpy as np
from .models import movies,rating

movies=pd.read_csv('movies.csv')
ratings=pd.read_csv('ratings.csv')

 movies.head()
 ratings.head()

 def replace_name(x):
 return movies[movies['movie_id']==x].title.values[0]

 ratings.movie_id=ratings.movie_id.map(replace_name)

 userRatings=ratings.pivot_table(index=['account_id'], columns=
 ['movie_id'], values='rating')
  corrMatrix=userRatings.corr(method='pearson')

 myRatings=userRatings.loc[5].dropna()
 simCandidates=pd.Series()
 for i in range (0,len(myRatings.index)):
     sims=corrMatrix[myRatings,index[i]].dropna()
     sims=sims.map(lambda x: x*myRatings[i])
     simCandidates=simCandidates.append(sims)

 simCandidates.sort.values(inplace=True,ascending=False)
 simCandidates=simCandidates.groupby(simCandidates.index).sum()
 simCandidates=simCandidates.drop(myRatings.index)

我在django中有一个基本的Web应用程序,可以从用户那里获得各种电影的评分。在用户对所有电影进行评级之后,推荐器系统然后向用户推荐某些电影。我将评分数据保存为评分模型。但是,由于我需要一个csv文件-'rating.csv',因此无法如上所述在我的Recommendationer.py中直接读取数据库表。如何在上面发布的代码中将sqlite数据库中的评分表直接作为csv文件导入,我必须对上面的代码进行哪些更改?

请帮助。

1 个答案:

答案 0 :(得分:0)

在熊猫中阅读Sqlite。

import sqlite3
import pandas as pd
# Create your connection.
db = sqlite3.connect('rating.db')

df = pd.read_sql_query("SELECT * FROM table_name", db)

为了使用read_sql_table(),必须安装SQLAlchemy可选依赖项。 https://codedaily.io/tutorials/22/The-Shapes-of-React-Native