pandas的基本功能(一)
第16天pandas的基本功能(一)
灵活的二进制操作
体现在2个方面
支持一维和二维之间的广播
支持缺失值数据处理
四则运算支持广播
+add - sub *mul /div
divmod()分区和模运算(返回商和余数2个结果)
案例:a,b=divmod(一维矩阵)
空值处理
矩阵中空值用NaN代替
NaN+值=NaN
np(numpy).nan表示空值
填充空值: fillna(value=值)
np.nan == np.nan 结果为False
如果a矩阵和b矩阵中有空值 那么 a == b 结果:False
相同:a.equal(b )结果为:True.带空的矩阵比较推荐使用equal
组合
从df2中把df1的数据不全
df1.combine_first(df2)
连接
连接二维矩阵
df1.concat(df2,axis=0/1)
连接一维矩阵
pd.concat([df1,df2])
一维二维通用
df1.append(df2)
统计
所有统计函数都支持行或列~~~
sum(0/1) mean(0/1)
统计函数
功能 描述 count非NA观测数量 sum价值总和 mean价值的平均值 mad平均绝对偏差 median算术值的中值 min最低限度 max最大值 mode模式 abs绝对值 prod价值的产物 std贝塞尔校正的样本标准偏差 var无偏差 sem平均值的标准误差 skew样本偏斜(第3时刻) kurt样本峰度(第4个时刻) quantile样本分位数(值为%) cumsum累计金额 cumprod累积产品 cummax累积最大值 cummin累积最小值
统计函数,统计的时候自动跳过空值
len(数组)获取行数,包括Nan所在的行~~~count(不包括)
include
#可以指定摘要统计的东西
矩阵.describe(include=['object'])
矩阵.describe(include=['number'])
最大最小索引
最大数和最小数对应的索引位置
最大 矩阵.idxmax(axis=0/1)
最小 矩阵 .idxmin(axis=0/1)
最常出现值模式
a.value_counts() 统计一维数组中每个元素出现的次数
a.mode()统计数组中出现次数最多的值
分段/面元
cut和qcut
共同点
都可以分为好多份 pd.cut/qcut(df,4) qcut 是对等的 cut 是随机的
不同点
pd.cut(df,[数组]) qcut不支持
语法 pd.cut(df,[切点列表],right=True/False)
示列
#分2组 大于18的为成年,小于18的为未成年,统计个数
a = pd.Series([4,5,5,2,3,1,8,9,3,15,6,45,56,1,56,2,20,4,5,2,1,8,18,1,82,20,25,20,20,12,13,14])
b = pd.cut(a,[0,18,100],labels=['未成年','成年'],right=False)
b.value_counts()
为矩阵添加处理函数/支持多个函数
链式写法
(df.pipe(函数名,参数).pipe(函数名,参数).......)
apply
df.apply(函数名,axis=0/1) 为当前行或列添加处理函数
示列
#12.判断年龄是否成年: 18岁以上成年 #成年和未成年获救比例
"""
1.判断是否成年
2.
"""
def age_old(b):
c = b['Age']
if c > 18:
return '成年'
elif c < 18:
return '未成年'
else:
return '空值'
#创建新列
df['chegnnian'] = df.apply(age_old,axis=1)
#设置全家的汉子显示
plt.rcParams['font.size'] = 15
h_j = df.groupby(by=['Survived','chegnnian']).size()
plt.pie(h_j,labels=['成年未获救','未成年未获救','空值未获救','成年获救','未成年获救','空值获救'],shadow=True,autopct='%1.1f%%')
plt.axis('equal') #设置圆的形状 正圆
plt.show()
map
df.applymap == df.map()
示列
#10. 以下肉类数据源,food都转换为小写,添加一个动物列,而且字符串都是小写
data = pd.DataFrame({'food': ['bacon', 'pulled pork', 'bacon','Pastrami', 'corned beef', 'Bacon','pastrami', 'honey ham', 'nova lox'],
'price': [4, 3, 12, 6, 7.5, 8, 3, 5, 6]})
data['food'].str.lower()
#新列: 动物列
animal = { 'bacon': 'Pig', 'pulled pork': 'pIg', 'pastrami': 'cOw', 'corned beef': 'Co', 'honey Ham': 'pig', 'nova lox': 'Salmon' }
x = data['food'].map(animal)
data['animal'] = x
data
pandas的基本功能(一)的更多相关文章
- pandas的筛选功能,跟excel的筛选功能类似,但是功能更强大。
Select rows from a DataFrame based on values in a column -pandas 筛选 https://stackoverflow.com/questi ...
- (数据科学学习手札134)pyjanitor:为pandas补充更多功能
本文示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 pandas发展了如此多年,所包含的功能已 ...
- python数据分析之Pandas:基本功能介绍
Pandas有两个主要的数据结构:Series和DataFrame. Series是一种类似于一维数组的对象,它由一组数据以及一组与之相关的数据标签构成.来看下它的使用过程 In [1]: from ...
- Pandas常用基本功能
Series 和 DataFrame还未构建完成的朋友可以参考我的上一篇博文:https://www.cnblogs.com/zry-yt/p/11794941.html 当我们构建好了 Series ...
- Pandas | 21 日期功能
日期功能扩展了时间序列,在财务数据分析中起主要作用.在处理日期数据的同时,我们经常会遇到以下情况 - 生成日期序列 将日期序列转换为不同的频率 创建一个日期范围 通过指定周期和频率,使用date.ra ...
- Pandas | 05 基本功能
到目前为止,我们了解了三种Pandas数据结构以及如何创建它们.接下来将主要关注数据帧(DataFrame)对象,因为它在实时数据处理中非常重要,并且还讨论其他数据结构. 一.系列基本功能 编号 属性 ...
- pandas replace 替换功能function
list like replace method dict like replace method regex expression import pandas as pd import numpy ...
- 3.1,pandas【基本功能】
一:改变索引 reindex方法对于Series直接索引,对于DataFrame既可以改变行索引,也可以改变列索引,还可以两个一起改变. 1)对于Series In [2]: seri = pd.Se ...
- pandas的基本功能
一.重新索引 (1)reindex方式 obj = pd.Series(['blue', 'purple', 'yellow'], index=[0, 2, 4]) print(obj) obj.re ...
随机推荐
- 修改MyEclipse字体大小及颜色
windows-->prefereces->General-->Appearance-->Colors and Fonts,在右边找到要修改的字体或背景,双击点Edit修改即可 ...
- 微信小程序 组件 Demo
文字跑马灯效果: http://www.wxapp-union.com/portal.php?mod=view&aid=1038 触摸水波涟漪效果: http://www.wx ...
- C#的托管与非托管大难点
托管代码与非托管代码 众所周知,我们正常编程所用的高级语言,是无法被计算机识别的.需要先将高级语言翻译为机器语言,才能被机器理解和运行.在标准C/C++中,编译过程是这样的:源代码首先经过预处理器,对 ...
- linux中启动 java -jar 后台运行程序
直接用java -jar xxx.jar,当退出或关闭shell时,程序就会停止掉.以下方法可让jar运行后一直在后台运行. 1. java -jar xxx.jar & 说明: 在末尾加入 ...
- mysql5.7.17版本升级源码方式及恢复主主复制
版本升级--自测 从库 ------------ 停止主从复制 stop slave 全库备份 mysqldump -u root -p -S mysql.sock --all-databases&g ...
- 在Vuex更新,组件内的视图更新问题
由于js的限制,vue无法进行监听数组; 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如: vm.items.len ...
- 4.hadoop的安装与配置
1.下载hadoop-2.6.2.tar.gz. 2.复制hadoop-2.6.2.tar.gz到/usr/local/目录下. 3解压 #tar -zxvf hadoop-2.6.2.tar.g ...
- Github 入门(“趣考网络”学习第一步)
目录 为什么要使用GitHub 下载Github Desktop fork 与 pull request git pull,fetch,merge,push的区别与联系 git clone 与 dow ...
- AWS的EC2实例搭建服务器使用stackoverflow教程
作为一个技术开发工程师, 一个给力的问题解决方案搜索引擎是十分必要的, stackoverflow作为一个码农必备神器, 存在访问不稳定,有时候打不开的问题,下面介绍如何在亚马逊云服务器上搭建属于自己 ...
- file_get_contents("php://input")的用法
$data = file_get_contents("php://input"); php://input 是个可以访问请求的原始数据的只读流. POST 请求的情况下,最好使用 ...