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值了。
在这里插入图片描述

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

  • 2
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值