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 ...
随机推荐
- 变量类型-Tuple
教程:一:元组的创建 元组(tuple)与列表类似,不同之处在于元组的元素不能修改 (1)tuple写在圆括号之间,元素用逗号隔开 (2)元组元素的类型可以不同 (3) ...
- 使用Java客户端操作elasticsearch(二)
承接上文,使用Java客户端操作elasticsearch,本文主要介绍 常见的配置 和Sniffer(集群探测) 的使用. 常见的配置 前面已介绍过,RestClientBuilder支持同时提供一 ...
- PAT甲级1123 Is It a Complete AVL Tree【AVL树】
题目:https://pintia.cn/problem-sets/994805342720868352/problems/994805351302414336 题意: 给定n个树,依次插入一棵AVL ...
- Python 学习笔记9 循环语句 For in
For in 循环主要适用于遍历一个对象中的所有元素.我们可以使用它遍历列表,元组和字典等等. 其主要的流程如下:(图片来源于: https://www.yiibai.com/python/pytho ...
- querySelector与getElementBy的区别
1,querySelector() 方法返回匹配指定 CSS 选择器元素的第一个子元素 . 该方法只返回匹配指定选择器的第一个元素.如果要返回所有匹配元素,需要使用 querySelectorAll( ...
- 2018-2019-2-20175303 实验二 《Java开发环境的熟悉》实验报告
2018-2019-2-20175303 实验二 <Java开发环境的熟悉>实验报告 姓名:柴轩达 学号:20175303 班级:1753 实验课程:JAV ...
- MYSQL 事务和用户权限
一. 什么是事务:简单说,所谓事务就是一组操作,要么操作都成功要么都不成功. 二.事务的使用流程 1. 第一步:开启一个事务,start transaction; 2. 第二步:正常的SQL语句操作, ...
- JAVA RPC (五) 之thrift序列化RPC消息体
让大家久等了.继续更新thrift序列化的消息体,下面我们一步一步的看一看thrift的rpc是怎么实例化消息体的. 首先我们先准备一个request文件 namespace java bky str ...
- kubernetes安装
本文主要参考自: https://blog.csdn.net/real_myth/article/details/78719244 还有一份更适合在生产环境使用的超强高可用(多master,nginx ...
- HDU 1754 线段树入门解题报告
---恢复内容开始--- 题意:给定区间,每个人的成绩, Q次询问,求每次询问区间中的最大值 思路:构造线段树 代码: #include<stdio.h> #include<algo ...