直接问的deepseek,放在这里存一下
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文件
df.to_csv()
/ df.to_excel()
:保存数据df.to_csv("new_data.csv", index=False) # 保存为CSV(不保留行索引) df.to_excel("new_data.xlsx") # 保存为Excel
df.head()
/ df.tail()
:查看首尾数据df.head(3) # 显示前3行 df.tail() # 默认显示后5行
df.info()
:查看数据摘要df.info() # 显示列名、数据类型、非空值数量
df.describe()
:统计数值列的描述性统计df.describe() # 均值、标准差、最小值、四分位数等
df.shape
:查看数据维度rows, cols = df.shape # 获取行数和列数
df.columns
/ df.index
:列名和索引df.columns = ["col1", "col2"] # 修改列名 df.set_index("date", inplace=True) # 设置索引列
df["column_name"] # 选择单列(返回Series) df[["col1", "col2"]] # 选择多列(返回DataFrame)
df.loc[0] # 通过索引标签选择行 df.iloc[0] # 通过位置索引选择行 df[df["age"] > 18] # 条件筛选
df["new_col"] = df["col1"] + df["col2"] # 添加新列 df.drop("col1", axis=1, inplace=True) # 删除列
df.dropna() # 删除包含缺失值的行/列 df.fillna(0) # 用0填充缺失值 df.isnull() # 检查缺失值(返回布尔矩阵)
df.drop_duplicates() # 删除重复行
df.groupby()
:分组统计grouped = df.groupby("category") grouped["sales"].sum() # 按分类统计销售额总和
df.pivot_table()
:透视表pd.pivot_table(df, values="sales", index="region", columns="year", aggfunc=np.mean)
df.agg()
:多聚合操作df.groupby("category").agg({"sales": ["sum", "mean"], "profit": "max"})
pd.concat()
:合并数据pd.concat([df1, df2], axis=0) # 垂直合并(按行) pd.concat([df1, df2], axis=1) # 水平合并(按列)
pd.merge()
:数据库式连接pd.merge(df1, df2, on="key", how="inner") # 内连接、左连接等
df["date"] = pd.to_datetime(df["date"]) # 转换为时间类型
df.set_index("date", inplace=True) df.resample("M").mean() # 按月重采样并计算均值
df.apply()
:应用函数df["col"].apply(lambda x: x*2) # 对列应用函数
df.value_counts()
:统计唯一值频次python
df["category"].value_counts() # 统计分类频次
df.sort_values()
:排序df.sort_values("sales", ascending=False) # 按销售额降序排序
df.corr()
:计算列之间的相关系数df.corr() # 相关性矩阵
(df .query("age > 20") # 筛选年龄大于20的行 .groupby("gender") # 按性别分组 .agg({"income": "mean"}) # 计算收入均值 .sort_values("income") # 按收入排序 )
过滤数据:
df[(df["age"] > 18) & (df["country"] == "China")]
替换值:
df["gender"].replace({"M": "Male", "F": "Female"}, inplace=True)
分箱(Binning):
df["age_group"] = pd.cut(df["age"], bins=[0, 18, 35, 60], labels=["child", "adult", "senior"])