寒假第二十三天
Day 2: 数据清洗与导入数据库
目标:清洗数据并导入MySQL数据库。
任务与进展:
-
数据清洗:
-
使用
pandas处理缺失值、重复值和格式问题。 -
示例:将评分转换为浮点类型,过滤评分低于8.0的电影。
-
-
数据库设计:
-
创建MySQL表
movies,字段包括id(主键),title,rating,director,description。
-
-
数据导入:
-
使用
pandas.to_sql直接将CSV数据写入数据库。
-
代码片段:
import pandas as pd
from sqlalchemy import create_engine
# 数据清洗
df = pd.read_csv("movies.csv")
df["rating"] = pd.to_numeric(df["rating"], errors="coerce")
df = df.dropna(subset=["rating"]) # 删除评分缺失的行
df = df[df["rating"] >= 8.0] # 过滤低评分数据
# 连接数据库并导入
engine = create_engine("mysql+pymysql://user:password@localhost/movie_db")
df.to_sql("movies", engine, if_exists="replace", index=False)
问题与解决:
-
编码问题:数据库字符集设置为
utf8mb4兼容特殊符号。 -
字段长度不足:调整数据库表的
VARCHAR长度(如description设为500字符)。

浙公网安备 33010602011771号