Datawhale的pandas学习的开源地址:Joyful Pandas
https://datawhalechina.github.io/joyful-pandas/build/html/%E7%9B%AE%E5%BD%95/ch1.html
欢迎大家关注了解Datawhale :)
目录
一、长宽表的变形
长宽表定义:针对某一特征A(A可取a1、a2),注意区分列和对应值即可
长表=列名为A,值为a1、a2
宽表=列名为a1,值为B;列名为a2,值为B
示例,如下图
1. pivot 长表2宽表
使用方法:df.pivot(index=‘行索引’, columns=‘列名’, values=‘列下的值’)
注意:上面三个参数可以是列表,且要求原dataframe满足唯一性(行索引,列名组成的元组唯一,否则value不知填啥)
教程示例:
df.pivot(index='Name', columns='Subject', values='Grade')
2. pivot_table 长表2宽表
pivot缺点:需满足唯一性,因此有pivot_table来实现聚合(函数)
使用方法:df.pivot_table(index=‘行索引’, columns=‘列名’, values=‘列下的值’,aggfunc=‘函数’,margins=True)
教程示例
3. melt 宽表2长表
使用方法:
df.melt(id_vars = 索引列名,value_vars = 需要列变行的列名,var_name = 列变行形成的列名,value_name = 列变行的取值的列名)
4. wide_to_long
二、索引的变形使用方法:
pd.wide_to_long(df, stubnames=[‘Grade’, ‘rank’],
i = [‘Class’, ‘Name’],
j = ‘Examination’,
sep = ‘_’,
suffix = ‘.+’)
1. stack与unstack
unstack 的作用是把行索引转为列索引
stack 的作用就是把列索引的层压入行索引
三、其他变形函数使用方法:
df.unstack(2) :2为第二层,默认为最内层
df.stack([1,2]) :将第1,2层的列索引变为行索引
1. crosstab
可用pivot_table代替
2. explode
explode 参数能够对某一列的元素进行纵向的展开
使用方法:df.explode(‘列名’)
3. get_dummies
对某一列做one-hot