大家好
今天分享一个一站式的 Pandas 备忘单和解释。不论你是在导入、清理、分析还是导出数据,这个指南都能为你节省时间和点击。
📥 1. 数据导入 — 将数据导入 Pandas
pd.read_csv('file.csv') # 加载 CSV
pd.read_excel('file.xlsx', sheet_name='Sheet1') # 加载 Excel
pd.read_sql(query, connection) # 执行 SQL 查询
pd.read_json('file.json') # 加载 JSON
pd.read_parquet('file.parquet') # 加载 Parquet
✅ 原因:将几乎来自任何地方的数据导入到您的 DataFrame 中。
🔍 2. 数据选择 — 访问您所需的内容
df['column'] # 单列 df.loc['row', 'col'] # 按标签 df.iloc[0:5, 0:2] # 按位置 df.query('col > 5') # 类似SQL的过滤
df[df['col].isin(['A,B])] # 多重匹配
✅ 原因:快速过滤并获取特定的行或列。
🔄 3. 数据操作 — 处理你的数据
df.groupby('col').agg({'col2': ['mean','sum']}) # 分组统计 df.merge(df2, on='key', how='left') # 数据连接
df.pivot_table(values='val', index='idx') # 透视表 df.sort_values(['col1','col2'], ascending=[1,0]) # 排序
df.melt(id_vars=['id'], value_vars=['A','B']) # 反透视 df.apply(lambda x: x**2) # 应用函数
✅ 原因:将您的数据集转换为符合分析目标的格式。
📊 4. 统计 — 快速洞察
df.describe() # 概要统计
df['col'].agg(['mean','median','std']) # 关键指标
df['col'].value_counts(normalize=True) # 值的百分比
df.corr(method='pearson') # 相关性
df.cov() # 协方差
df.quantile([0.25, 0.5, 0.75]) # 四分位数
✅ 原因:即时了解数据分布。
🧹 5. 数据清洗 — 使其可用
df.dropna(subset=['col'], how='any') # 移除 NaN
df.fillna(method='ffill') # 向前填充
df.drop_duplicates(subset=['col']) # 去重
df['col'].replace({'old': 'new'}) # 替换值
df['col'].astype('category') # 转换类型
df.interpolate(method='linear') # 按趋势填充
✅ 原因:可靠的数据意味着可靠的分析。
⏳ 6. 时间序列 — 处理日期
df.resample('M').mean() # 月平均值
df.rolling(window=7).mean() # 滚动平均 df.shift(periods=1) # 数据平移 pd.date_range('2024', periods=12, freq='M') # 日期范围 df.asfreq('D', method='ffill') # 每日频率
df['date1'].dt.strftime('%Y-%m-%d') # 格式化日期
✅ 原因:基于时间的数据通常需要重新采样或偏移。
✂ 7. 字符串操作 — 文本处理
df['col'].str.contains('pattern') # 匹配 df['col'].str.extract('(\d+)') # 提取数字 df['col'].str.split('_', 1).str[0] # 分割文本
df['col'].str.lower() # 转为小写 df['col'].str.strip() # 去除空格 df['col'].str.replace(r'\s+', ' ') # 规范化空格
✅ 原因:直接在 Pandas 中清理杂乱的文本字段。
🚀 8. 高级特性 — 强大的操作
df.pipe(func) # 链接函数
pd.eval('df1 + df2') # 快速评估
df.memory_usage(deep=True) # 内存检查
df.select_dtypes(include=['number]) # 过滤数据类型
df.nlargest(5, 'col') # 获取前五个最大值
df.explode('col) # 展开列表
✅ 原因:编写更简洁、更快速和更高效的代码。
💾 9. 数据导出 — 保存你的工作
df.to_csv('output.csv', index=False) # CSV
df.to_excel('output.xlsx', sheet_name='Sheet1') # Excel
df.to_parquet('output.parquet') # Parquet
df.to_json('output.json', orient='records') # JSON
✅ 原因:即时分享结果以正确的格式。
💡 专业提示
📝 使用 .copy()
来避免意外更改。
🔗 链式调用方法以使代码更简洁。
🗂 使用 dtype='category'
来节省内存。
❌ 避免使用 inplace=True
— 请重新赋值。
💬 你最常使用的 Pandas 技巧是什么?或者你有没有其他未列出的最爱?与我们分享一下,让这个备忘单更好。🚀