在推荐系统中读取sqlite表作为csv文件的问题

问题描述 投票:0回答:1

我必须导入一个评级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文件,以及我在上面的代码中需要做哪些更改?

请帮忙。

django python-3.x pandas collaborative-filtering
1个回答
0
投票

阅读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

© www.soinside.com 2019 - 2024. All rights reserved.