panda库数据处理常用操作

直接问的deepseek,放在这里存一下

一、数据读取与保存

1. pd.read_csv() / pd.read_excel():读取数据
import pandas as pd
df = pd.read_csv("data.csv")         # 读取CSV文件
df_excel = pd.read_excel("data.xlsx")  # 读取Excel文件
2. df.to_csv() / df.to_excel():保存数据
df.to_csv("new_data.csv", index=False)  # 保存为CSV(不保留行索引)
df.to_excel("new_data.xlsx")           # 保存为Excel

二、数据查看与基本信息

1. df.head() / df.tail():查看首尾数据
df.head(3)  # 显示前3行
df.tail()    # 默认显示后5行
2. df.info():查看数据摘要
df.info()  # 显示列名、数据类型、非空值数量
3. df.describe():统计数值列的描述性统计
df.describe()  # 均值、标准差、最小值、四分位数等
4. df.shape:查看数据维度
rows, cols = df.shape  # 获取行数和列数
5. df.columns / df.index:列名和索引
df.columns = ["col1", "col2"]  # 修改列名
df.set_index("date", inplace=True)  # 设置索引列

三、数据筛选与操作

1. 列选择
df["column_name"]       # 选择单列(返回Series)
df[["col1", "col2"]]   # 选择多列(返回DataFrame)
2. 行选择
df.loc[0]             # 通过索引标签选择行
df.iloc[0]            # 通过位置索引选择行
df[df["age"] > 18]    # 条件筛选
3. 添加/删除列
df["new_col"] = df["col1"] + df["col2"]  # 添加新列
df.drop("col1", axis=1, inplace=True)    # 删除列
4. 处理缺失值
df.dropna()        # 删除包含缺失值的行/列
df.fillna(0)       # 用0填充缺失值
df.isnull()        # 检查缺失值(返回布尔矩阵)
5. 去重
df.drop_duplicates()  # 删除重复行

四、数据分组与聚合

1. df.groupby():分组统计
grouped = df.groupby("category")  
grouped["sales"].sum()  # 按分类统计销售额总和
2. df.pivot_table():透视表
pd.pivot_table(df, values="sales", index="region", columns="year", aggfunc=np.mean)
3. df.agg():多聚合操作
df.groupby("category").agg({"sales": ["sum", "mean"], "profit": "max"})

五、数据合并与连接

1. pd.concat():合并数据
pd.concat([df1, df2], axis=0)  # 垂直合并(按行)
pd.concat([df1, df2], axis=1)  # 水平合并(按列)
2. pd.merge():数据库式连接
pd.merge(df1, df2, on="key", how="inner")  # 内连接、左连接等

六、时间序列处理

1. 转换时间格式
df["date"] = pd.to_datetime(df["date"])  # 转换为时间类型
2. 时间索引操作
df.set_index("date", inplace=True)
df.resample("M").mean()  # 按月重采样并计算均值

七、其他实用函数

1. df.apply():应用函数
df["col"].apply(lambda x: x*2)  # 对列应用函数
2. df.value_counts():统计唯一值频次

python

df["category"].value_counts()  # 统计分类频次
3. df.sort_values():排序
df.sort_values("sales", ascending=False)  # 按销售额降序排序
4. df.corr():计算列之间的相关系数
df.corr()  # 相关性矩阵

八、链式操作(提高代码可读性)

(df
 .query("age > 20")          # 筛选年龄大于20的行
 .groupby("gender")          # 按性别分组
 .agg({"income": "mean"})    # 计算收入均值
 .sort_values("income")      # 按收入排序
)

常用技巧

  1. 过滤数据

    df[(df["age"] > 18) & (df["country"] == "China")]
  2. 替换值

    df["gender"].replace({"M": "Male", "F": "Female"}, inplace=True)
  3. 分箱(Binning)

    df["age_group"] = pd.cut(df["age"], bins=[0, 18, 35, 60], labels=["child", "adult", "senior"])

你可能感兴趣的:(python,爬虫,搜索引擎)