如何将数据导入python

Python导入数据需依来源选工具,pandas最常用:支持CSV(注意编码、分隔符)、Excel(需安装openpyxl)、数据库(sqlalchemy引擎)、网页(read_html)、JSON(read_json或json_normalize)及内存对象(DataFrame构造)。

在 Python 中导入数据,核心是根据数据来源和格式选择合适的工具和方法。最常用的是 pandas 库,它支持从文件、数据库、网络等多种渠道读取结构化数据。

从常见文件格式导入数据

大多数初学者从本地文件开始,pandas 提供了简洁统一的接口:

  • CSV 文件:用 pd.read_csv("data.csv")。注意编码(如中文乱码时加 encoding="utf-8""gbk")、分隔符(sep="\t" 读取 TSV)、是否含表头(header=None)等参数。
  • Excel 文件:用 pd.read_excel("data.xlsx", sheet_name=0)。可指定工作表名或索引,需提前安装 openpyxlxlrd(旧版 xls)。
  • 文本文件(固定宽/空格分隔):用 pd.read_table("data.txt", sep="\s+")pd.read_fwf() 处理对齐文本。

从数据库导入数据

连接数据库后,可用 pandas.read_sql() 直接加载查询结果:

  • 先用 sqlalchemy.create_engine() 创建数据库引擎,例如:
    engine = create_engine("sqlite:///example.db")
  • 再执行:
    df = pd.read_sql("SELECT * FROM users", engine)
  • 支持 PostgreSQL、MySQL、SQL Server 等,只需更换连接字符串和对应驱动(如 psycopg2pymysql)。

从网页或 API 导入数据

适合获取实时或公开数据:

  • 网页表格(HTML):用 pd.read_html("https://example.com/page.html"),返回列表,取 [0] 获取第一个表格。
  • JSON 数据:若 API 返回 JSON,可用 pd.read_json("data.json") 或配合 requests 获取响应后解析:
    res = requests.get(url).json()df = pd.json_normalize(res)(处理嵌套结构)。
  • 注意设置请求头、处理认证(如 token)、控制频率,避免被封 IP。

从其他 Python 对象或内存中导入

调试或中间处理时常需要构造或转换数据:

  • 从字典或列表创建:
    df = pd.DataFrame([{"name": "Alice", "age": 25}, {"name": "Bob", "age": 30}])
  • 从 NumPy 数组:
    df = pd.DataFrame(np_array, columns=["col1", "col2"])
  • 从已有 DataFrame 的子集或计算结果直接复用,无需“导入”,而是生成新对象。

导入前建议先用 head()info()dtypes 快速检查数据是否正确读入,尤其关注缺失值、列类型和索引。不复杂但容易忽略。