数值计算和统计基础

基本参数axis,skipna

axis=1按照行处理
skipna=False 不过滤掉空值

主要数学计算方法,可用于Series和DataFrame

df.count() 统计非NaN值的数量
df[‘key1’].count()

df.min()
df.quantile(q=0.75) 统计分位数,参数q确定位置,默认0.5
df.sum()
df.median()
df.std() ,df.var() 分别求标准差,方差
df.skew() 样本的偏度
df.kurt()样本的峰度

惟一值unique

import pandas as pd
s=pd.Series(list('dadadadad'))
sq=s.unique()
print(s)
print(sq)  #得到惟一值的数组
print(Series(sq)) #变为Series

输出:
0 d
1 a
2 d
3 a
4 d
5 a
6 d
7 a
8 d
dtype: object
[‘d’ ‘a’]

值计数.value_counts()

import pandas as pd
s=pd.Series(list('dadadadad'))
sq=s.value_counts() #pd.value_counts(sq,sort=False)
print(sq)

输出:
d 5
a 4
dtype: int64

成员资格.isin()

得到一个布尔型的Series或者DataFrame

s=pd.Series(np.arange(10,15))
df=pd.DataFrame({'key1':list('rdafwfwfw'),'key2':np.arange(4,13)})
print(s)
print(df)
print(s.isin([5,14]))
print(df.isin(['a','bc','10',8]))

文本数据

通过str访问,且自动排除丢失/Na数据

s=pd.Series(['A','b','C','bbhello','123',np.nan,'hj'])
df=pd.DataFrame({'key1':list('abcdef'),'key2':['hee','fv','w','hija','123',np.nan]})
df['key1']=df['key1'].str.upper()
print(s.str.count('b'))
print(df)
df.columns=df.columns.str.upper()
print(df)

字符串常用方法

与python内置的str函数一直

strip()去除前面空格
rstrip()去除后面空格
去除中间空格可以使用replace(’ ‘,’ heik’,n=1),n=1表示只会替换第一个

split()
rsplit() 顺序与split相反
s.str.split(‘,’)[0]第零行

s.str.split(‘,’).str[0]
s.str.split(‘,’).str.get(1) 第一个元素
s.str.split(‘,’,expand=True,n=1)

字符串索引

s=pd.Series(['A','b','C','bbhello','123',np.nan,'hj'])
df=pd.DataFrame({'key1':list('abcdef'),'key2':['hee','fv','w','hija','123',np.nan]})print(s.str[0])
print(s.str[:2])
print(df['key2'].str[0])

merge

merge(left, right, how=’inner’, on=None, left_on=None, right_on=None,left_index=False, right_index=False, sort=True,suffixes=(‘_ x’, ‘_ y’), copy=True, indicator=False)

on:指的是用于连接的列索引名称。必须存在右右两个DataFrame对象中,如果没有指定且其他参数也未指定则以两个DataFrame的列名交集做为连接键。

left_on:左则DataFrame中用作连接键的列名;这个参数中左右列名不相同,但代表的含义相同时非常有用(左边表用哪个键作为参考)。

right_on:右则DataFrame中用作 连接键的列名。

left_index:使用左则DataFrame中的行索引做为连接键
right_index: 使用右则DataFrame中的行索引做为连接键

how:数据融合的方法(合并方式)。
inner:默认取交集
outer:取并集
left:按照left为主匹配,数据缺失范围NaN
right:右边为主

sort:默认为True,将合并的数据进行排序。在大多数情况下设置为False可以提高性能

left = pd.DataFrame({'key1': ['K0', 'K0', 'K1', 'K2'],'key2': ['K0', 'K1', 'K0', 'K1'],'A': ['A0', 'A1', 'A2', 'A3'],'B': ['B0', 'B1', 'B2', 'B3']})right = pd.DataFrame({'key1': ['K0', 'K1', 'K1', 'K2'],'key2': ['K0', 'K0', 'K0', 'K0'],'C': ['C0', 'C1', 'C2', 'C3'],'D': ['D0', 'D1', 'D2', 'D3']})result = pd.merge(left, right, on=['key1', 'key2'])

join(merge的简洁版)

join(self, other, on=None, how=’left’, lsuffix=”, rsuffix=”,sort=False)

其中参数的意义与merge方法基本相同,只是join方法默认为左外连接how=left

1.默认按索引合并,可以合并相同或相似的索引,不管他们有没有重叠列。

2.可以连接多个DataFrame

3.可以连接除索引外的其他列

4.连接方式用参数how控制

5.通过lsuffix=”, rsuffix=” 区分相同列名的列

pandas学习笔记(四)相关推荐

  1. pandas学习笔记四:运算方法和运算工具

    1.数值计算和统计基础 import numpy as np import pandas as pd# 基本参数:axis.skipnadf = pd.DataFrame({'key1':[4,5,3 ...

  2. pandas学习笔记四之读取写入文件

  3. 吴恩达《机器学习》学习笔记四——单变量线性回归(梯度下降法)代码

    吴恩达<机器学习>学习笔记四--单变量线性回归(梯度下降法)代码 一.问题介绍 二.解决过程及代码讲解 三.函数解释 1. pandas.read_csv()函数 2. DataFrame ...

  4. pandas学习笔记之DateFrame

    pandas学习笔记之DateFrame 文章目录 pandas学习笔记之DateFrame 1.DateFrame的创建 1)认识DataFrame对象 2)由二维列表创建(默认index和colu ...

  5. 数据分析之pandas学习笔记(六)(层次化索引、重塑、轴向旋转、行列变换、合并表数据)

    数据分析之Pandas学习笔记(六)(层次化索引.重塑.轴向旋转.行列变换.合并表数据) level层次化索引 unstack()与stack()进行重塑,即:行列索引变换 swaplevel()交换 ...

  6. [Pandas 学习笔记] - No.1 pandas学习笔记

    pandas学习笔记 pandas是基于numpy开发出的数据分析包,用于高效地操作大型数据集.pandas的数据结构有三种 分别为 series,dataframe和panel,对应一维,二维,三维 ...

  7. C#可扩展编程之MEF学习笔记(四):见证奇迹的时刻

    前面三篇讲了MEF的基础和基本到导入导出方法,下面就是见证MEF真正魅力所在的时刻.如果没有看过前面的文章,请到我的博客首页查看. 前面我们都是在一个项目中写了一个类来测试的,但实际开发中,我们往往要 ...

  8. IOS学习笔记(四)之UITextField和UITextView控件学习

    IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...

  9. RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决)

    RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) 参考文章: (1)RabbitMQ学习笔记四:RabbitMQ命令(附疑难问题解决) (2)https://www.cnblogs. ...

  10. JSP学习笔记(四十九):抛弃POI,使用iText生成Word文档

    POI操作excel的确很优秀,操作word的功能却不敢令人恭维.我们可以利用iText生成rtf文档,扩展名使用doc即可. 使用iText生成rtf,除了iText的包外,还需要额外的一个支持rt ...

最新文章

  1. 从事JAVA 20年最终却败给了Python,哭了!
  2. AI一分钟 | AI单挑医学专家;中国AI企业破4000家
  3. SQL注入—我是如何一步步攻破一家互联网公司的
  4. Lucene教程--维护索引、查询对象和相关度排序
  5. msyql开启慢查询以及分析慢查询
  6. android视频压缩框架,GitHub - tangpeng/VideoCompressor: Android 使用自带的MediaCodec 框架进行本地视频压缩,速度嗖嗖的,亲测有效!!!...
  7. nginx日志切割脚本
  8. 2020 年开源项目
  9. oracle从9.2.0.1升级到9.2.0.8步骤
  10. 隐秘攻击:恶意病毒可使智能手机加速老化
  11. 再暴BBSxp 7.0 Beta 2漏洞
  12. 使用jave(ffmpeg)将.amr音频转码成mp3
  13. android 闹钟取消,android设置和取消闹钟
  14. 生活随记 - 感恩老同学
  15. SaaS(软件即服务)的魅力
  16. 别让CDN的回源把你的服务器拖垮,采用正确的回源策略
  17. 中国余数定理c语言pta,密码学基础——辗转相除法,费马小定理,欧拉定理,裴蜀定理,中国剩余定理...
  18. B端产品的PMF的定义原则
  19. [原创方法!] 如何实现全自动登录各大网站? Cookie格式 、油猴脚本基础 解决Github邮箱验证,持久登录,免验证码
  20. python 踩坑之解决django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module.Did you insta

热门文章

  1. 企业员工培训管理系统(JAVA,JSP,SQLSERVER,SSH)
  2. 系统分析师之信息化技术(十一)
  3. VS2013+WDK8.1 驱动开发环境配置
  4. 震惊!!C++居然可以发出声音!
  5. word文档docx解密助手,word文档docx权限密码如何解开?
  6. 2022年证券从业资格投资顾问考试每日一练及答案
  7. 2022年4月24号MyBatis总结.
  8. 微信变身大史记:从IM到电商 腾讯帝国新时代http://danke74520.qzone.qq.com
  9. iOS流布局UICollectionView系列七——三维中的球型布局
  10. php微信公众号开发之快递查询