pandas常用基础

pandas常用基础

数据结构

Series

pd.Series()
属性

Series.index
Series.values
Series.name
Series.index.name

DataFrame

pd.DataFrame()
属性:

df.columns
df.index

常用的统计函数

obj.count 非NaN数值的数量

obj.describe 汇总统计
obj.min
obj.max
obj.argmax obj.argmin 最大值最小值的索引位置
obj.idmax obj.idmin 最大值最小值得的索引号
obj.quantile 计算样本的分位数
obj.sum  
obj.mean 
obj.median 算术中位数
obj.mad 根据平均值计算平均绝对离差
obj.var 方差
obj.std 标准差
obj.skew 样本值的偏度
obj.kurt 样本值的峰度
obj.cumsum 样本值的累计和
obj.cummin obj.cummax 样本值的累积最值
obj.cumprod 样本值的累计积
obj.diff 计算一阶差分
obj.pct_change 计算百分数变化

高级操作

层级索引

选取数据:

ser_obj[outerindex]  外层索引数据
ser_obj[innerindex]  内层索引数据

交换索引层次:

Ser_obj.swaplevel( )

对索引进行排序:

Ser_obj.sortlevel( )

分组

对象:

SeriesGroupBy
DataFrameGroupBy

操作:

obj.size()  查看组内数据的个数
obj.count()  查看每组内每列数据的分组情况

查看GroupBy对象:

通过迭代(for循环)进行查看
返回多个元组,元组的个数由分组的个数决定
每个元组中,第一个元素是组名,多层分组时,第一个元素是不同层级的组名,第二个元素是数据

分组方式汇总
按列名进行分组
某一列根据另一列进行分组:

df[‘col’].groupby(df[‘col2’])

根据特定列进行分组:

df.groupby(‘col’)

按字典进行分组:

将字典的键对应列名。根据键值是否相同进行分组。
groupby(dict),可以根据主观进行组合数据。通过axis可指定分组的纬度

自定义一个列表进行分组,类似于字典,按主观分组
按函数进行分组:

函数内可以定义一组操作,根据这些操作进行分组。

参数:

group_keys = False  可以禁止层级索引

df.unstack()

可以将两层行索引改成一行,也就是将其中的一层索引放到列索引上去

聚合

对groupBy对象进行运算
内置的聚合函数

(groupby对象的方法)

df.groupby(‘col’).max()
min()
sum()
mean()
size()
count()
describe()
应用其他的函数:
agg方法可以传入一个自定义的聚合函数,或者定义一个匿名函数
通过列表可以传入多个聚合函数,函数名默认作为df的内层列名
可以通过元组修改内层函数名:

用agg方法,参数为列表,被修改的函数名为元组
元组的第一个元素是修改后的列名
元组的第二个元素是被修改的函数名

对不同的列应用聚合函数:

用dict:键名对应列名
不同的列应用多个函数,键值设为列表

分组运算

transform
不改变数据shape,分组后计算完,保持分组前的结构
参数为函数名
也可以通过自定义一个函数传入
apply
这个apply主要是将函数应用到每一个组内
参数说明:

apply接收的参数会作为参数传到被应用的函数里

索引说明:

在这里进行groupby之后会产生层级索引,
外层是组名
内层是原来的DF的行索引

用以处理组内缺失数据的填充,用聚合函数计算组内平均值。然后apply()

透视表和交叉表

透视表:pd.pivot_tabel(df_data)
根据指定的列名和行名,将相应的数据划到一组,并进行聚合运算
参数:index指定行名。columns指定列名。aggfunc指定聚合函数,默认为np.mean()。fill_value 填补空值
类似矩阵分块法
交叉表:pd.crosstab(index,columns)
用来查看每组内数据的个数
参数:第一个为行索引,第二个为列索引。若有多个参数,则第二个往后的列为层级索引。
如果要使用多层索引的话,就传入列表

不建议使用多层索引

常用操作

列操作

查看列名:df.columns
更改列名:df.rename(columns={‘key’:…})
增加列:df[new_col] = data
删除列:del df[columns]
查看所有列的数据类型:df.dtype()
查看特定列的数据类型:df[col].dtype()
判断空值:df.isnull()
查看特定列的空值:df[‘col’].isnull()
查看特定列的唯一值:df[‘col’].unique()
大小写转换:df[‘col’]=df[‘col’].str.lower()

表操作

查看数据的基本信息:df.info()
查看数据的结构:df.shape,可指定维度
预览数据(参数指定预览的行数):df.head()
预览数据(尾部):df.tail()

索引与切片

Series
行索引:

Series[index]

连续索引:

Series[start: end]
Series[label1: label2]
标签索引包括最后一个

不连续索引:

Series[ [idx1, idx2, idx3 …] ]

布尔索引:

Series[condition]

DF
列索引:

df[col]

不连续索引:

df[ [col, col, col, …] ]

布尔索引:

df[condition]

标签索引:

df.loc[ ]

位置索引:

df.iloc[ ]

对齐与运算

当运算的对象维度不一致的时候,就会进行对齐

未能对齐的部分补NAN,对齐的部分进行正确的运算

Series 按行对齐,未能对齐的补nan
DataFrame,按行按列对齐,未能对应的补nan
在运算前进行填充数据:

用add sub div mul进行运算
加一个参数:fill_value( )

运算后填补NAN的数据:

通过obj.fill_value() 可以填充数据

函数应用

可以直接使用numpy中的函数

可以应用自己写的函数

df.apply(func,axis= )

通过axis可以指定应用到行或列

df,applymap()可以应用到元素

排序

Series
根据值进行排序:

Series.sort_values( )

根据索引进行排序:

Series.sort_index( )

DF
根据行索引进行排序:

df.sort_index( )

根据列索引进行排序:

df,sort_index(axis = 1)

根据某一列的值进行排序:

df.sort_values(by = ‘col’)

参数:

axis = 0/1
ascending = True/False(T表示升序,默认为T)

可视化

线形图:ser.plot()  df.plot()
柱状图:ser.plot(kind=‘bar’)  df.plot(kind=‘barh’)

barh:表示水平柱状图

散布矩阵:pd.scatter_matrix(df)

数据的规整

数据的清洗

缺失数据的处理
df_obj.fillna(values=) #填充特定值,一般均值

拉格朗日插值法

df_obj.dropna() #默认扔掉行通过设置axis=1 可以扔掉列
df[‘col’].fillna(values=df[‘col’].mean())

在特定的列填充均值

数据的连接

外键on=
默认为重叠的列名作为连接的外键
on=  指定外键
left_on 指定左侧数据的外键
right_on 指定右侧数据的外键
方式how=
inner  默认为内连接 取交集
outer 外连接 取并集
left  左连接 依据左边的数据进行连接
right 右连接 依据右边的数据进行连接
按索引连接:

left_index或者right_index=True/False
被连接数据的索引对应df1的外键(指定的外键)
不用how指定,是通过设置left_index   right_index

数据的合并

numpy:np.concatenate()

默认为并行 axis=0

pandas:pd.concat()

默认为并行 axis=0

通过axis指定操作的维度,在该维度上若有重复,索引覆盖
Series合并时查看行索引,没有的地方补空值,因为默认是‘outer’取并集

Df合并时依据行索引和列索引,没有的地方补空值,默认是‘outer’

通过join设置合并的方式:

outer 取并集
inner 取交集

数据的重构

df.unstack() 和df.stack()

可以通过level指定转换的层级,默认level = -1位内层
level = 0 是操作外层

stack:

将列索引旋转为行索引,形成层级索引
df->Ser

unstack:

将行索引旋转成列索引,展开层级索引
df->Ser

转换

查看重复数据,返回布尔型

df.duplicated()

过滤重复数据

df.drop_duplicates()
通过传入列名或者列名列表可以对特定的列进行操作

map()  可以传入一个函数  作用于元素
df.replace( yuan, hou )  替换元素。

多个值时,传入列表
第一个参数是原来的值
第二个参数是替换后的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Pandas是一个强大的数据处理和分析工具,它提供了丰富的数据结构和函数,可以方便地进行数据操作和分析。下面是Pandas基础操作介绍: 1. 创建DataFrame:DataFrame是Pandas中最常用的数据结构,类似于Excel中的表格。可以通过传入字典、列表、数组等方式创建DataFrame。 2. 查看数据:可以使用head()方法查看DataFrame的前几行数据,默认显示前5行;使用tail()方法查看DataFrame的后几行数据,默认显示后5行。 3. 选择数据:可以使用方括号[]或者loc、iloc等方法选择DataFrame中的特定数据。方括号[]可以选择列,loc可以通过标签选择行和列,iloc可以通过索引选择行和列。 4. 过滤数据:可以使用布尔索引来过滤DataFrame中的数据。布尔索引是一个由True和False组成的数组,用于选择满足条件的行或列。 5. 添加和删除数据:可以使用assign()方法添加新的列到DataFrame中;使用drop()方法删除指定的行或列。 6. 数据排序:可以使用sort_values()方法对DataFrame中的数据进行排序,默认是按照升序排序。 7. 数据统计:可以使用describe()方法对DataFrame中的数值型数据进行统计描述,包括计数、均值、标准差、最小值、最大值等。 8. 数据聚合:可以使用groupby()方法对DataFrame中的数据进行分组聚合操作,如求和、平均值、计数等。 9. 数据合并:可以使用merge()方法将多个DataFrame按照指定的列进行合并,类似于SQL中的join操作。 10. 数据处理:Pandas提供了丰富的函数和方法用于数据处理,如填充缺失值、删除重复值、数据类型转换等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值