pandas merge函数_造轮子手册正文上|Pandas

关于Pandas的总结,就数据类型而言大体分三块Series,DataFrame,Categorical Data

其次是表和一些函数的记录

Series

1dd5eeb7cc8eb369c7cbc6d6bb00693c.png

DataFrame

2d5044cec86d56150e92bc042a43c54c.png

Categorical Data

定义

用于表示统计学里有限且唯一性数据集

df['初始评级'] = df['初始评级'].astype('category')

  • 修改fruit列由Series category类型
  • 改变了其数据类型已不是Series而是category类型,该列存储所需的内存使用容量大大降低。

创建

. astype('category')

  • 可以将某dataframe的某列直接转为Categorical Data型的数据

. pandas.Categorical()

直接创建Categorical

  • val =["A", "B", "C","D","E","F"]
  • cat = pd.Categorical(val)
  • val是python的列表
    • cat则是categorical data数据类型
    • 有categories和codes属性
    • 分别表示数据存储时的分类和编码
  • 用categoris和codes生成Categorical Data
  • categories要求唯一、有限,codes可以任意定义,cat变量是基于列表val创建的一个categorical data数据,同时cat有categories和codes属性
    • Categorical Data的实例对象调用take函数
    • 一个categorical的实例对象cat可以传入"要查询"的编码表codes给take函数获得其对应的值,即给出编码找对应的分类
    • pd.Categorical类调用take函数,这时形参有两个,一个是pd.Categorical的实例对象cat,另一个是编码表

DataFrame里插入Categorical Data

  • cat = pd.Categorical(column)
  • df["column"] = cat
  • pandas.Categorical创建的Categorical data数据插入到DataFrame

函数

修改Categorical的categories

  • 赋值
    • df.column.values.categories = ["A", "B", "C","D","E","F"]
  • set_categories()
  • rename_categories
    • df.column.values .rename_categories( ["A", "B", "C","D","E","F"],inplace = True)

增加categories

  • add_categories
    • df.column.values.add_categories("AAA", inplace = True)

#AAA为安全标

删除categories

  • df.column.values.remove_categories("AB", inplace = True)

删除未使用的categories

  • df.column.cat.remove_unused_categories(inplace = True)

value_counts函数

  • df.column.value_counts()

XMind: ZEN - Trial Version

9f9cac06bf6897938b2d55af12e78756.png

Notes:

  1. crosstab与aggfunc

#aggfunc若指定,需要配置values

#[aggfunc cannot be used without values.]

pd.crosstab(lc['借款期限'],lc['借款类型'],values = lc['认证信息汇总'],margins=True,aggfunc=sum)

结果如下:

借款类型	APP闪电	其他	普通	电商	All
借款期限					
1	0	40	0	2	42
2	0	799	0	3	802
3	674	1021	254	44	1993
4	0	94	0	0	94
5	0	85	0	0	85
6	33777	27471	22228	1010	84486
7	0	440	799	0	1239
8	0	1159	693	0	1852
9	0	1976	8793	0	10769
10	0	3535	1936	1	5472
11	0	3031	2320	0	5351
12	77628	57143	80550	9	215330
15	0	31	0	0	31
17	0	1	0	0	1
18	0	367	0	0	367
20	0	1	0	0	1
21	0	2	0	0	2
24	0	106	530	0	636
All	112079	97302	118103	1069	328553

2.访问/索引方式栗子

rz = ['手机认证','户口认证','视频认证','学历认证','征信认证','淘宝认证']
type(lc[rz]:1)          #pandas.core.frame.DataFrame
lc[rz].shape[0]         #328553
#查看数据有多少行,同时可用作分母,通过for循环实现子图绘制 
#lc[rz].iloc[:,:3]     #索引前3列
#lc[rz].columns        #可通过列名索引访问

b64b14bd2a584eae21e5a97168291dd5.png

之前容易漏掉部分,以借款金额指标为例,区别如下,

lc['jkje_cut']    #Category
================================================
0         10000-80000
1          8000-10000
2         10000-80000
3         10000-80000
4         10000-80000
             ...     
328548      2000-3000
328549      5000-8000
328550      2000-3000
328551      5000-8000
328552      3000-4000
Name: jkje_cut, Length: 328553, dtype: category
Categories (11, object): [<500 < 500-1000 < 1000-2000 < 2000-3000 ... 8000-10000 < 10000-80000 < 80000-300000 < ≥300000]

多一个[]

lc[['jkje_cut']]   #DataFrame
================================================
 	jkje_cut
0 	10000-80000
1 	8000-10000
2 	10000-80000
3 	10000-80000
4 	10000-80000
... 	...
328548 	2000-3000
328549 	5000-8000
328550 	2000-3000
328551 	5000-8000
328552 	3000-4000

328553 rows × 1 columns

参考:

http://shzhangji.com/cnblogs/2017/09/30/pandas-and-tidy-data/ ⭐

数据处理-melt函数-可视化

python,pandas模块,Melt函数处理数据,透视表格,宽数据变成长数据

Pandas中DataFrame数据合并、连接(concat、merge、join)之merge - wqbin - 博客园

CSDN-专业IT技术社区-登录

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值