Python 核心语法:Pandas 读写 CSV 与 TSV 文件
本文介绍了 Python Pandas 库在文件读写方面的核心用法,涵盖 CSV、TSV、JSON 及 Excel 文件的读取与保存,以及通过 SQLAlchemy 连接 MySQL 数据库进行数据存取的方法。同时,通过房产数据集示例演示了数据加载、统计信息查看、排序与筛选等基础数据分析操作,帮助读者掌握 Pandas 处理结构化数据的基本流程。

本文介绍了 Python Pandas 库在文件读写方面的核心用法,涵盖 CSV、TSV、JSON 及 Excel 文件的读取与保存,以及通过 SQLAlchemy 连接 MySQL 数据库进行数据存取的方法。同时,通过房产数据集示例演示了数据加载、统计信息查看、排序与筛选等基础数据分析操作,帮助读者掌握 Pandas 处理结构化数据的基本流程。

Pandas 是一个强大的分析结构化数据的工具集,其基础是 Numpy。它广泛用于数据挖掘和数据分析,同时也提供数据清洗功能。
安装 Pandas 及相关依赖(如 pymysql, sqlalchemy)可使用 pip 或 conda。
pip install pandas pymysql sqlalchemy
主要方法:read_csv, to_csv。
读取 CSV 文件
import pandas as pd
import os
os.chdir('./data')
data = pd.read_csv("LJhouse.csv", sep=',', usecols=['open', 'high', 'close'])
写入 CSV 文件
data[:10].to_csv("my_file1.csv", sep=',', index=False)
print('写入成功!')
读写 TSV 文件
TSV 文件以 Tab 键为分隔符。
# 写入 TSV
data[:5].to_csv("my_file2.tsv", sep='\t', index=True)
# 读取 TSV
df2 = pd.read_csv("my_file2.tsv", sep='\t', index_col=0)
主要方法:read_sql, to_sql。
前期准备
需安装 pymysql 和 sqlalchemy。
连接数据库并写入数据
from sqlalchemy import create_engine
import pandas as pd
engine = create_engine('mysql+pymysql://root:password@localhost:3306/test?charset=utf8')
data.to_sql('my_table', con=engine, if_exists='append', index=False)
查看 MySQL 数据
sql_df = pd.read_sql('SELECT * FROM my_table LIMIT 0, 2', con=engine)
主要方法:read_json, to_json。
# 读取 JSON
json_df = pd.read_json('./data/test.json', orient='columns', lines=True)
# 写入 JSON
json_df.to_json('./data/test1.json', orient='records', lines=True)
主要方法:read_excel, to_excel。
以下通过房产数据集示例演示基本分析步骤。
import pandas as pd
import numpy as np
house_df = pd.read_csv("./data/LJhouse.csv")
# 查看前 5 行
house_df.head()
# 查看列信息
house_df.info()
# 查看统计指标
house_df.describe(include='all')
# 查看数据形状
house_df.shape
1. 查找租金最低和最高的房子
# 最便宜的
house_df.sort_values(by='小区价格', ascending=True).head(1)
# 最贵的
house_df.sort_values(by='小区价格', ascending=False).tail(1)
# 或使用 nlargest/nsmallest
house_df.nlargest(1, '小区价格')
house_df.nsmallest(1, '小区价格')
2. 查找最近新上的房源
house_df.sort_values(by='小区房龄', ascending=False).head(10)
3. 查看所有更新时间
house_df['更新时间'].unique()
import pandas as pd
import numpy as np
import os
os.chdir('./data')
# 加载数据集
house_df = pd.read_csv("LJhouse.csv")
# 修改列名(示例)
house_df.columns = ['district', 'address', 'title', 'house_type', 'price', 'area']
# 查看数据
print(house_df.head())
print(house_df.info())
print(house_df.describe())
# 排序筛选
min_price = house_df[house_df['price'] == house_df['price'].min()]
max_price = house_df[house_df['price'] == house_df['price'].max()]
注:实际使用时请根据本地路径调整 os.chdir 及文件路径。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML 转 Markdown 互为补充。 在线工具,Markdown 转 HTML在线工具,online
将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML 转 Markdown在线工具,online
通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online