Pandas 命令使用指南
1. 数据导入导出
1.1 读取数据
pd.read_csv("file.csv")
pd.read_excel("file.xlsx")
pd.read_json("file.json")
pd.read_sql("SELECT * FROM table", connection)
pd.read_parquet("file.parquet")
pd.read_csv("file.csv",
encoding='utf-8',
header=0,
index_col=0,
na_values=['NA', 'missing']
)
1.2 保存数据
df.to_csv("output.csv")
df.to_excel("output.xlsx")
df.to_json("output.json")
df.to_sql("table_name", connection)
df.to_parquet("output.parquet")
2. 数据查看和基本信息
2.1 基本信息查看
df.head()
df.tail()
df.sample(n=5)
df.info()
df.describe()
df.shape
df.columns
df.index
2.2 数据类型操作
df["col"].astype("int64")
df["col"].astype("category")
df["date_col"].astype("datetime64")
df.dtypes
df["col"].dtype
3. 数据选择和过滤
3.1 索引操作
df.iloc[0]
df.iloc[0:5]
df.iloc[0:5, 0:2]
df.loc["index_label"]
df.loc["start":"end"]
df.loc[:, ["col1", "col2"]]
3.2 高级过滤
df.query("col1 > 5 and col2 < 10")
df.filter(items=["col1", "col2"])
df.filter(like="name")
df.filter(regex="^date")
4. 数据清洗和处理
4.1 缺失值处理
df.isnull()
df.isnull().sum()
df.fillna(0)
df.fillna(method="ffill")
df.fillna(method="bfill")
df.dropna()
df.dropna(axis=1)
4.2 重复值处理
df.duplicated()
df.duplicated(subset=["col1", "col2"])
df.drop_duplicates()
df.drop_duplicates(subset=["col1"], keep="last")
5. 数据转换和计算
5.1 列操作
df["new_col"] = df["col1"] + df["col2"]
df.assign(new_col=lambda x: x["col1"] * 2)
df.rename(columns={"old_name": "new_name"})
df.columns = ["col1", "col2", "col3"]
5.2 数学运算
df.sum()
df.mean()
df.median()
df.std()
df.var()
df.min()
df.max()
df.rolling(window=3).mean()
df.expanding().sum()
df.cumsum()
6. 数据分组和聚合
6.1 分组操作
grouped = df.groupby("category")
grouped = df.groupby(["cat1", "cat2"])
grouped.agg("mean")
grouped.agg(["mean", "sum", "count"])
grouped.agg({
"col1": "sum",
"col2": ["min", "max"],
"col3": lambda x: x.max() - x.min()
})
6.2 透视表
pd.pivot_table(df,
values="value",
index="category",
columns="date",
aggfunc="mean"
)
pd.crosstab(df.col1, df.col2)
7. 时间序列处理
7.1 时间操作
pd.to_datetime(df["date"])
pd.date_range(start="2023-01-01", periods=10)
df["date"].dt.year
df["date"].dt.month
df["date"].dt.day
df["date"].dt.dayofweek
7.2 时间重采样
df.resample("D").mean()
df.resample("M").sum()
df.resample("H").ffill()
8. 高级功能
8.1 合并操作
pd.merge(df1, df2, on="key")
pd.merge(df1, df2, left_on="key1", right_on="key2")
df1.join(df2)
pd.concat([df1, df2], axis=0)
pd.concat([df1, df2], axis=1)
8.2 数据转换
df.melt(id_vars=["A"], value_vars=["B"])
df.pivot(index="date", columns="category", values="value")
df.astype({"col1": "int32", "col2": "float64"})
pd.get_dummies(df["category"])
9. 性能优化
9.1 内存优化
df.memory_usage()
df.select_dtypes(include=["int64"]).astype("int32")
9.2 计算优化
df.parallel_apply(func)
df.eval("col3 = col1 + col2")