我必须导入一个评级sqlite表作为我的推荐系统的csv文件。 recommender.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中有一个基本的webapp,它可以评估用户的各种电影。在用户对所有电影进行评级之后,推荐系统然后向用户推荐某些电影。我将评级数据保存在评级模型中。但是,我无法直接在我的recommender.py中读取数据库表,如上所示,因为我需要一个csv文件 - 'rating.csv'。如何在我的sqlite数据库中直接导入评级表作为上面发布的代码中的csv文件,以及我在上面的代码中需要做哪些更改?
请帮忙。
阅读Pandas中的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可选依赖项。 http://pandas.pydata.org/pandas-docs/stable/io.html#reading-tables