python对sql数据库文件的基本操作(连接、读取、统计、筛选)

一、导入数据库相关的包。
我们需要处理数据库,需要用到sqlite3和pandas两个数据库,使用import语句进行导入:

import sqlite3
import pandas as pd

二、数据库的连接和读取
我们需要使用sqlite3.connect()方法来连接数据库,通过连接,我们就可以用sql的select语句来读取数据库中的数据了。注意我们这里调用的pd.rea_dql_query的方法来进行文件读取,因此最终返回的将是一个DateFrame格式,DF是一种强大的工具,可以把txt,csv,xlsx,sql等数据统一进行处理。

conn = sqlite3.connect('data/douban_comment_data.db')
comment_data = pd.read_sql_query('select * from comment;',conn)
print(comment_data)

运行之后,我们就可以看到comment数据库中存放了40多万条豆瓣电影的评论数据。
在这里插入图片描述
三、根据字段(MOVIEID)统计电影的评论数量
参考使用data.value_counts()方法对Series数组中的重复元素进行统计一文,我们可以使用Series的.value_count()方法,对MOVIEID一列进行统计,查看这一列中有多少个不同的MOVIEID,并且计算不同的MOVIEID在这一列上有多少个重复值(即这部电影有多少个评论数),具体代码如下:

movie_list = comment_data['MOVIEID'].value_counts()

movie_list是一个Series,其index是MOVIEID,values是评论总数,我们可以打印movie_list来查看统计出来的电影ID名和评论数量:
在这里插入图片描述
四、根据条件表达式筛选评论数量大于100的电影
参考python中DataFrame数据帧的筛选:使用布尔表达式返回是否引用序这篇博文,我们可以使用布尔表达式movie_list.values()>100,来筛选出评论数量大于100的电影。

movie_list = movie_list[movie_list.values>100]

输出结果如下:
在这里插入图片描述
我们也可以将这几行复杂的代码封装成一个函数,并将这个函数的参数设置为评论数的最小值,便于后边的调参。

def get_movie_id_list(min_comment_count):
    movie_list = comment_data['MOVIEID'].value_counts()
    movie_list = movie_list[movie_list.values>min_comment_count]
    return movie_list.index

比如我们把min_comment_count设为1000,就可以看到评论过千的电影的id值了。
在这里插入图片描述

这样,我们就完成了数据库的连接、读取、统计、筛选等基本操作。

发布了152 篇原创文章 · 获赞 6 · 访问量 4022

猜你喜欢

转载自blog.csdn.net/weixin_41855010/article/details/104449612