【Pandas】 思维导图
2025-08-23 16:22:15 0 举报
AI智能生成
Pandas是一套强大的Python数据分析库,其核心内容包括数据结构、数据操作和数据可视化等多个模块。Pandas设计的核心数据结构是DataFrame,一个二维标签化数据表,能够高效地处理和操作大型数据集。其提供了丰富的功能,如数据索引、数据筛选、数据合并、数据排序、数据统计和数据透视等。除了DataFrame,Pandas还包括Series,一种一维标记数组,可以看作DataFrame的一列。Pandas支持读取多种格式的数据文件,如CSV、Excel、JSON和SQL数据库等,具有高度的灵活性和功能性。修饰语可以描述为“高效便捷的”、“功能全面的”、“易用性强的”、“支持广泛数据源的”。Pandas的数据可视化模块提供了绘图功能,可以方便地生成各种类型图表,如线图、柱状图、饼图和散点图等,使得数据分析的结果更加直观易懂。总体而言,Pandas是数据科学和数据分析工作中不可或缺的工具,是处理大数据和数据挖掘任务的利器。
作者其他创作
大纲/内容
创建DataFrame对象
二维数据
二维数据
二维数组创建
DataFrame对象 = pd.DataFrame(data=列数据, columns=行名, index=索引列)
字典创建
DataFrame对象 = pd.DataFrame(data=字典键值对, index=索引列)
CSV文件创建
DataFrame对象 = pd.read_csv(r'CSV文件路径', index_col=索引列)
Excel工作表创建
DataFrame对象 = pd.read_excel(r'excel文件路径', sheet_name='工作簿名', index_col=索引列)
数据库二维表创建
DataFrame对象 = pd.read_sql('select * from 表名', python连接数据库代码, index_col=索引列)
DataFrame对象的属性和方法
显示相关信息
表名.info()方法
查看头部数据
表名.head()
查看尾部数据
表名.tail()
...
...
DataFrame对象操作
索引和切片
表名.列名
整列
表名['列名']
整列
表名.iloc[整数索引号]
整行
表名.loc[设置的索引号]
整行
表名[['列名1', '列名2']]
获取多列
表名.loc[[索引号1, 索引号2, 索引号3]]
获取多行
修改某个单元格数据
DataFrame对象.loc[设置的索引号, '列名'] = '更改的数据'
多行切片
DataFrame对象.loc[设置的索引号X:设置的索引号Y]
数据筛选
布尔索引
表名[表名.列名+设置的条件]
多个条件
表名[(表名.列名1+设置的条件1) & (表名.列名2+设置的条件2)]
query方法
表名.query('列名1+设置的条件1 and 列名2+设置的条件2')
数据重塑
数据拼接
拼接后的表名 = pandas.concat([表1, 表2])
merge函数合并数据
pandas.merge(表1, 表2, how='合并方式', on='共同的列名')
数据清洗
缺失值
找出缺失值
表名.isnull() 或者 表名.isna()
删除空值
表名.dropna()
参数axis=0 删行
参数axis=1 删列
空值填充
表名.fillna(value=填充值)
重复值
判断重复值
表名.duplicated('列名')
删除重复值
表名.drop_duplicates('列名', keep='last')
异常值
Z-score 方法
Z-score 值=(数据点 - 平均值) / 标准差
远离标准差 3 倍视为离群点
IQR 方法
小于 Q1 - 1.5 × IQR 或大于 Q3 + 1.5 × IQR 为异常值
Q1为25分位,Q3为75分位
DBScan 聚类
孤立森林
预处理
拆解
变换
归约
离散化
数据透视
DataFrame对象 = pandas.DataFrame(data=数据, columns=列名, index=索引列)
统计信息
DataFrame对象.describe()
排序
DataFrame对象.sort_values(by='列名', ascending=False)
取极值
最大值
DataFrame对象.nlargest(个数, '列名')
最小值
DataFrame对象.nsmallest(个数, '列名')
分组聚合
例:df['销售额'] = df['售价'] * df['销售数量']
例: df.groupby('销售区域').销售额.sum()
透视表和交叉表
透视表
例:pd.pivot_table(df, index='销售区域', values='销售额', aggfunc='sum')
交叉表
pd.crosstab(数组或Series对象运算).fillna(0).astype(类型)
数据呈现
plot方法绘图
计算同比环比
pct_change方法
窗口计算
rolling方法
相关性判定
斯皮尔曼秩相关系数
条件:数据是等级数据或有序分类数据
corr(method=spearman)
皮尔逊相关系数
条件:要求数据是连续且符合正态分布等
corr(method=pearson)
索引
范围索引
RangeIndex类的类方法
分类索引
reorder_categories的方法
多级索引
MultiIndex类的类方法
间隔索引
interval_range函数
日期时间索引
date_range()函数
Main Topic
Main Topic
Main Topic
Main Topic
创建Series对象
一维数据
一维数据
列表或数组创建
pd.Series(data=[数据], index=[索引])
字典创建
pd.Series({键A: 值a, 键B: 值b,键C: 值c,键D: 值d})
Series对象的运算
标量运算
series对象 += 标量值
矢量运算
series对象1 + series对象2
索引运算
普通索引
整数索引
series对象[下标值]
自定义索引
series对象[键A]
仅输出当前对应值
series对象[键A]=值a
输出含该键值对和之后所有的
切片索引
整数索引
series对象[起始下标:结束下标]
自定义索引
series对象[键A:键D]
A~D
series对象[键A:键D]=值a,值d
A~D
花式索引
series对象[[键A:键B]]
仅显示A、B
series对象[[键A:键D]]=值a,值d
A~D,同时赋值A,D
布尔索引
series对象[键A设置的条件]
符合条件的
Series对象的属性和方法
常用属性
数据类型
series对象.dtype
有没有空值
series对象.hasnans
索引
series对象.index
值
series对象.values
是否单调递增
series对象.is_monotonic_increasing
是否每个值都独一无二
series对象.is_unique
统计相关
计数
series对象.count()
求和
series对象.sum()
求平均
series对象.mean()
找中位数
series对象.median()
找最大
series对象.max()
找最小
series对象.min()
求标准差
series对象.std()
求方差
series对象.var()
综合统计
series对象.describe()
统计不重复值的数量
series对象.nunique()
统计每个值重复的次数
series对象.value_counts()
找众数
series对象.mode()
处理数据
空值判断
series对象.isna() 或 series对象.isnull()
非空值的判断
series对象.notna() 或 series对象.notn()
删除空值
series对象.dropna()
填充空值
series对象.fillna(value=填充值)
填充值填充
series对象.fillna(method='ffill')
用空值前面的非空值填充
满足条件替换
series对象.where(series对象设置的条件)
不满足条件替换
series对象.mask(series对象设置的条件)
找出重复数据
series对象.duplicated()
删除重复数据
series对象.drop_duplicates()
用字典或函数方法,映射或转换数据
series对象.map()
series对象.apply()
取头部值和排序
排序
索引排序
series对象.sort_index()
数据排序
series对象.sort_values()
取极值
最大
series对象.nlargest(需要的数量)
最小
series对象.nsmallest(需要的数量)
绘制图表
series对象.plot(图标类型)
0 条评论
下一页