1. 企业司库数据读取与初步探查

企业司库数据读取与初步探查 学习卡片

任务说明

本案例用 pandas 读取三份司库数据(银行账户余额、交易流水、资金计划),对每张表输出字段类型、缺失值、重复记录和数值列基本统计量,形成一份可复用的数据质量概览。

环境与数据

依赖:Python 3.9+、pandas。三份 CSV 放在同目录下,字段如下:

  • accounts.csv:account_id, bank, account_type, balance, currency, updated_at
  • transactions.csv:txn_id, account_id, txn_date, amount, direction, counterparty
  • plans.csv:plan_id, account_id, plan_month, plan_inflow, plan_outflow

数据质量探查流程

读取三张表 read_csv 字段类型 dtypes 缺失值 isna 重复记录 duplicated 数值统计量 describe 质量概览 逐表汇总输出

完整代码

import pandas as pd

FILES = {
    "accounts": "accounts.csv",
    "transactions": "transactions.csv",
    "plans": "plans.csv",
}

def load_tables(files):
    return {name: pd.read_csv(path) for name, path in files.items()}

def quality_report(name, df):
    print(f"\n===== {name} =====")
    print(f"行数: {len(df)}  列数: {df.shape[1]}")
    print("\n[字段类型]")
    print(df.dtypes)
    print("\n[缺失值]")
    print(df.isna().sum())
    print("\n[重复记录数]")
    print(df.duplicated().sum())
    num_cols = df.select_dtypes(include="number").columns
    if len(num_cols):
        print("\n[数值列统计量]")
        print(df[num_cols].describe().T)
    else:
        print("\n[数值列统计量] 无")

if __name__ == "__main__":
    tables = load_tables(FILES)
    for name, df in tables.items():
        quality_report(name, df)

运行与验证

在数据文件所在目录执行 python quality_report.py。通过条件:三张表均打印出字段类型、缺失值、重复记录数;含数值列的表额外输出 count/mean/std/min/max 等统计量,无数值列的表显示“无”。若某表读取报错,检查文件名与列名是否与上方一致。