Pandas 进阶

Pandas 进阶

1.基本数据操作

1. 索引

1. 直接 -- 先烈货航
2.  loc 先行后列,只能通过索引值
3.  iloc 先行后列,可以通过下标
4.  ix 县行后列,混合索引

2. 赋值

3. 排序

1. 索引
	data.sort_index()
		默认升序排列
2. 值的排序
	df.sort_values(by=, ascending=)
	by:指定排序参考的键,by 可以接收多个值,有限按照第一个索引排序,若值相同比较后边的
	ascending:默认升序
		ascending=False:降序
		ascending=True:升序

4. 运算

1. 算数运算
2. 逻辑运算
	逻辑运算函数
	对象.query("")
	对象.isin([ ])    
3. 统计运算
	df.describe() -- 查看dataframe 的统计信息  例如最小,最大,中位,平均
	data.idxmax(axis=0) -- 最大值索引
	data.idxmin(axis=0) -- 最小值索引      
	累计统计函数
		df.cumsum()	计算前1/2/3/…/n个数的和
		df.cummax()	计算前1/2/3/…/n个数的最大值
		df.cummin()	计算前1/2/3/…/n个数的最小值
		df.cumprod()	计算前1/2/3/…/n个数的积        
4. 自定义运算
	apply(func, axis)
		func 是自定义函数,如lambda 函数    

5. 画图

6. 缺失值处理

1. 判断数据中是否包含NaN
	pd.isnull(df)  
	pd.notnull(df)     
	进阶版
	np.any(pd.isnull(df))  --如果有nan,返回true
	np.all(pd.notnull(df)) -- 如果有nan,返回false    
2. 缺失值的删除和替换
	删除:df.dropna()
	替换:df[“列标题”].fillna(value=, inplace = True) 
				value: 替换后的值
				inplace: 是否替换原来的值
3. 缺失值不是NaN,二是其他字符,例如?等的情况
	替换: df.replace(to_replace=, value = ?)
		to_replace : 要替换的值
		value: 替换后的值  

7. 数据离散化

就是把数据分组
1. df_new = pd.qcut(df, q=)
	q 为要分的组数
2. df_new = pd.cut(df,bins)
	与qcut 的区别是cut 自己指定分组间隔
	bins 是一个列表,为分组的间隔,例如[1,3,5,7]
3. 通常会和  qcut.value_counts() 配合使用,来统计分到每个区间的数据的个数
4. one-hot编码
	把每个类别生成一个布尔列,这些列中只有一列可以为这个样本取值为1.其又被称为热编码。
	pd.get_dummies(df, prefix=None)
		data:array-like, Series, or DataFrame
		prefix:分组名字

数据合并

1. pd.concat([data1, data2], axis=1)
		按照行或列进行合并,axis=0为列索引,axis=1为行索引
		如果不传axie 参数,会按照对角线的方式合并
2. pd.merge(left, right, how='inner', on=None)
	可以指定按照两组数据的共同键值对合并或者左右各自
	left: DataFrame
	right: 另一个DataFrame
	on: 指定的共同键
	how:按照什么方式连接inner(只保留两个df都有的),left(只保留左表有的),right,outer(都保留)

交叉表和透视表

  1. 交叉表
    交叉表用于计算一列数据对于另外一列数据的分组个数(用于统计分组频率的特殊透视表)就是探索两列数据之间的关系
    pd.crosstab(value1, value2)
    value1 是要被分组的数据
    value2 是作为组的数据
    返回值是每个组内的被分组的数据各有多少个
    df.pivot_table([组],index=[被分组的数])
    返回占比

分组和聚合

  1. 分组:DataFrame.groupby([key], as_index=False)
    key:分组的列数据,可以多个,列表
    as_index 是否用key 作为索引
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值