寒假第二十三天

Day 2: 数据清洗与导入数据库

目标:清洗数据并导入MySQL数据库。

任务与进展

  1. 数据清洗

    • 使用pandas处理缺失值、重复值和格式问题。

    • 示例:将评分转换为浮点类型,过滤评分低于8.0的电影。

  2. 数据库设计

    • 创建MySQL表movies,字段包括id(主键)titleratingdirectordescription

  3. 数据导入

    • 使用pandas.to_sql直接将CSV数据写入数据库。

代码片段

python
复制
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字符)。

posted @ 2025-02-14 14:36  努力不掉发  阅读(20)  评论(0)    收藏  举报