Python 数据处理
使用 Pandas、NumPy 等库进行数据处理的实用技巧。
Pandas 快速入门
创建 DataFrame
python
import pandas as pd
# 从字典创建
df = pd.DataFrame({
"名称": ["锂电池A", "锂电池B", "锂电池C"],
"容量(mAh)": [3000, 3500, 4000],
"循环寿命": [800, 1200, 500],
"价格(元)": [15.5, 22.0, 28.0],
})读取文件
python
# CSV
df = pd.read_csv("data.csv", encoding="utf-8")
# Excel
df = pd.read_excel("data.xlsx", sheet_name="Sheet1")
# JSON
df = pd.read_json("data.json")数据探索
python
df.head() # 前5行
df.info() # 列类型和非空统计
df.describe() # 数值列的统计摘要
df.shape # (行数, 列数)
df.columns # 列名列表
df.dtypes # 各列数据类型数据清洗
缺失值处理
python
# 检查缺失
df.isnull().sum()
# 删除缺失行
df.dropna(subset=["重要列"])
# 填充缺失
df["价格"].fillna(df["价格"].mean(), inplace=True)去重
python
df.drop_duplicates(subset=["名称"], keep="first")类型转换
python
df["日期"] = pd.to_datetime(df["日期"])
df["价格"] = df["价格"].astype(float)数据筛选与计算
python
# 条件筛选
high_cap = df[df["容量(mAh)"] > 3000]
# 多条件
result = df[(df["容量(mAh)"] > 3000) & (df["价格(元)"] < 25)]
# 新增计算列
df["性价比"] = df["容量(mAh)"] / df["价格(元)"]
# 分组聚合
df.groupby("类别")["价格(元)"].agg(["mean", "max", "count"])NumPy 基础
python
import numpy as np
# 创建数组
arr = np.array([1, 2, 3, 4, 5])
zeros = np.zeros((3, 4)) # 3x4 零矩阵
linspace = np.linspace(0, 1, 50) # 0到1之间50个等距点
# 向量化运算(比 for 循环快 100x)
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
print(a + b) # [5, 7, 9]
print(a * b) # [4, 10, 18]
print(np.dot(a, b)) # 32(点积)
# 统计
data = np.random.randn(1000)
print(f"均值: {data.mean():.4f}")
print(f"标准差: {data.std():.4f}")数据导出
python
# 导出 CSV
df.to_csv("output.csv", index=False, encoding="utf-8-sig")
# 导出 Excel
df.to_excel("output.xlsx", index=False, sheet_name="结果")
# 导出 JSON
df.to_json("output.json", orient="records", force_ascii=False)实践建议
- 处理大文件时用
chunksize参数分批读取 - 尽量用向量化操作替代
for循环 - 中文 CSV 导出时使用
utf-8-sig编码避免 Excel 乱码