🎬 HoRain 云小助手个人主页

⛺️生活的理想,就是为了理想的生活!


⛳️ 推荐

前些天发现了一个超棒的服务器购买网站,性价比超高,大内存超划算!忍不住分享一下给大家。点击跳转到网站。

目录

⛳️ 推荐

🔍 核心操作详解

1. 创建与查看

2. 数据选择与过滤

3. 数据清洗与预处理

4. 数据处理与转换

5. 数据聚合与分组

6. 合并与连接数据

💡 实用技巧与场景示例

💎 总结


Pandas 是 Python 数据科学的基石,其核心 DataFrameSeries是你必须掌握的工具。下面这个表格汇总了它们的关键操作。

特性/操作

DataFrame (二维表格)

Series (一维数组/列)

创建对象

pd.DataFrame(data, columns=[])

pd.Series(data, index=[])

查看数据

.head(), .tail(), .info(), .describe()

.head(), .tail(), .describe()

选择数据

df[col], df[[col1, col2]], .loc[], .iloc[]

s[index], .loc[], .iloc[], 切片

过滤数据

布尔索引:df[df[col] > value]

布尔索引:s[s > value]

处理缺失值

.dropna(), .fillna(value)

.dropna(), .fillna(value)

数据转换

.astype(), .apply(func)

.astype(), .apply(func), .replace()

排序

.sort_values(by=col), .sort_index()

.sort_values(), .sort_index()

常用计算

.mean(), .sum(), .max(), .min()

.mean(), .sum(), .max(), .min()

分组聚合

.groupby(col)[col].agg(func)

-

合并数据

pd.concat([df1, df2]), .merge(df2, on=col)

.append(series)


🔍 核心操作详解

1. 创建与查看
  • 创建DataFrame:最常用的方法是从字典或列表的列表创建。pd.DataFrame({'姓名': ['Alice', 'Bob'], '年龄': [25, 30]})

  • 创建Series:可以从列表或字典创建。pd.Series([10, 20, 30], index=['a', 'b', 'c'])

  • 快速查看:使用 .head(n).tail(n)查看数据首尾。.info()查看数据集概况(行数、列数、数据类型等),.describe()则提供数值型列的快速统计摘要(计数、均值、标准差等)。

2. 数据选择与过滤

这是数据操作的核心,主要使用方括号 [].loc.iloc索引器。

  • 选择列df['列名']获取单列(返回Series),df[['列名1', '列名2']]获取多列(返回DataFrame)。

  • 选择行

    • 按标签选择.loc[]基于行和列的标签。例如,df.loc[0, '姓名']选择第一行、'姓名'列的值 。

    • 按位置选择.iloc[]基于行和列的整数位置(从0开始)。例如,df.iloc[0, 1]选择第1行、第2列的值 。

  • 布尔索引(条件过滤):这是过滤数据的强大方式。例如,df[df['年龄'] > 25]会返回所有“年龄”大于25岁的行 。多个条件可以用 &(与)、|(或)连接,注意每个条件要用括号括起来。

3. 数据清洗与预处理

干净的数据是准确分析的前提。

  • 处理缺失值.isnull()检测缺失值。.dropna()删除包含缺失值的行或列。.fillna(值)用指定值(如均值、中位数或0)填充缺失值 。

  • 类型转换.astype(新类型)改变一列的数据类型,例如将字符串转为整数:df['列名'] = df['列名'].astype(int)

  • 删除列df.drop('列名', axis=1, inplace=True)inplace=True表示直接在原数据上修改,否则会返回一个新DataFrame 。

  • 重命名列df.rename(columns={'旧名': '新名'}, inplace=True)

4. 数据处理与转换
  • 应用函数.apply()方法非常强大,可以将自定义函数或Lambda函数应用到DataFrame的列或行上。例如,df['身高米'] = df['身高厘米'].apply(lambda x: x / 100)

  • 排序df.sort_values(by='列名', ascending=False)按指定列的值降序排序 。

  • 去重df['列名'].drop_duplicates()获取某列的唯一值 。

5. 数据聚合与分组

这是理解数据分布的关键。

  • 分组聚合df.groupby('分组列')['计算列'].agg(聚合函数)。例如,df.groupby('部门')['工资'].mean()计算每个部门的平均工资 。常用聚合函数包括 sum, mean, count, max, min等。

  • 数据透视表pd.pivot_table(df, values='值列', index='行索引列', columns='列索引列', aggfunc='mean'),功能类似Excel数据透视表,能进行多维度的交叉分析 。

6. 合并与连接数据
  • 纵向合并pd.concat([df1, df2])将结构相同的多个DataFrame沿纵向(行方向)拼接 。

  • 横向连接df1.merge(df2, on='关键列', how='inner')类似于SQL的JOIN操作,根据一个或多个键将不同DataFrame连接起来。how参数可以是 inner(内连接)、left(左连接)等 。


💡 实用技巧与场景示例

  • Series的索引对齐:Series运算时会自动按索引对齐,而不是位置。这是Pandas一个非常强大且需要留心的特性 。

  • 链式方法:可以将多个操作链接在一起,使代码更简洁,例如 df.fillna(0).query('age > 30').groupby('city')['income'].mean()

  • 处理大数据集:对于非常大的数据集,可以考虑使用 dtype参数指定数据类型以节省内存,或使用Pandas的 chunksize分块读取功能。

💎 总结

掌握这些核心操作,你就能应对大部分数据分析任务。建议在实际项目中多练习,遇到问题随时查阅Pandas官方文档,它的解释和示例是最权威的。

希望这份总结对你有帮助!如果你在某个具体操作上遇到困难,或者想了解更高级的用法,我们可以继续深入探讨。

❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐