十分钟掌握Pandas(上)——来自官网API

一、numpy和pandas

numpy是矩阵计算库,pandas是数据分析库,关于百度百科,有对pandas的介绍。

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。Pandas 纳入了大量库和一些标准的数据模型,提供了高效地操作大型数据集所需的工具。pandas提供了大量能使我们快速便捷地处理数据的函数和方法。你很快就会发现,它是使Python成为强大而高效的数据分析环境的重要因素之一。

二、数据类型

numpy pandas
ndArray相当于n维矩阵 Series(类似一维数组,或者kv值对)
在numpy中只有ndArray一种,但是ndArray有很多种数据类型 DataFrame(使用csv读入数据是dataFrame)

二、官网API

2.1.Object craetion

因为pandas基于numpy进行开发,所以,我们要引入pandas的同时进行引入numpy

import numpy as np
import pandas as pd

我们创建一个integer索引的Series

s = pd.Series([1,3,5,np.nan,6,8])
print(s)

创建一个DataFrame类型,使用NumPy的数组,index是行,columns是列

df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list('ABCD'))
print(df)

这边是另一种创建方式

df2 = pd.DataFrame({
'A':1.,
'B':pd.Timestamp('20130102'),
'C':pd.Series(1,index=list(range(4)),dtype='float32'),
'D':np.array([3]*4,dtype='int32'),
'E':pd.Categorical(["test","train","test","train"]),
'F':'foo'
})
print(df2)

我们从头查看,或者从尾查看

df.head()
df.tail(3)

Series使用to_numpy()转换为ndArray格式

df.to_numpy()

我们的DataFrame格式,也可以使用to_numpy()进行转换

df2.to_numpy()

使用df.describe进行查看DataFrame的属性

df.describe()

使用T属性,可以查看DataFrame的转置

df.T

使用sort_index可以进行按照索引行列进行排序,指定axis维度为0按照列进行排序,指定axis维度为1按照行进行排序,ascending为False为逆序排序,True为正序进行排序

df.sort_index(axis=1,ascending=False)

按照值进行排序

df.sort_values(by='B')
2.2.Selection

注意,我们标准的Python/Numpy表达选择是直接查看,如果我们数据量庞大,则会使用.at,.iat,.loc和.iloc进行间接获取数据

Getting

直接获取一个列

df['A']

切片获取

df[0:3]

Selection by label

获取标签行

df.loc[dates[0]]
2.3.Select by position

通过索引位置进行获取

df.iloc[3]

位置仍然可以通过行列或者切片方式

2.4.Boolean indexing

布尔选择器

df[df.A>0]

我们可以通过isin()方法进行过滤pandas表

df2=df.copy()//拷贝
df2['E']=['one','two','three','four','five']//插入新列
df2[df2['E'].isin('two','three')] //进行选择过滤
2.5.Setting

设置一个新列进行设置

我们的一个列相当于一个Series格式,现在我们发现Pandas的行相当于一个二维的Series进行封装

s1 = pd.Series([1,2,3,4],index=pd.date_range('20130102',periods=4))
df['F']=s1

通过标签进行设置值

df.at[dates[0],'A']=0

通过值来进行定位

df.iat[0,1]=0
2.6.Missing data

缺失数据值,pandas 最初使用np.nan进行代表缺失值,比如无法计算,会使用Nan进行代替

reindex重建方法

df1 = df.reindex(index=dates[0:4], columns=list(df.columns) + ['E'])

去掉丢失数据的行

df1.dropna(how='any')

填充缺失的数据

df1.fillna(value=5)

bool判断是否为na

df1.isna(df1)
2.7.operations

求平均,axis设置为0,1为根据行或者列进行求平均

df.mean(0)
df.mean(1)

去掉前两个值,下次依次执行了2次shift,去掉了前面四个值

s=pd.Series([1,3,5,np.nan,6,8],index=dates)
s=s.shift(2)
s=s.shift(2)
s

十分钟了解pandas的更多相关文章

  1. 十分钟掌握pandas(pandas官方文档翻译)

    十分钟掌握pandas 文档版本:0.20.3 这是一个对pandas简短的介绍,适合新用户.你可以在Cookbook中查看更详细的内容. 通常,我们要像下面一样导入一些包. In [1]: impo ...

  2. 十分钟掌握Pandas(上)——来自官网API

    十分钟掌握Pandas(上)——来自官网API 其实不止10分钟,这么多,至少一天 一.numpy和pandas numpy是矩阵计算库,pandas是数据分析库,关于百度百科,有对pandas的介绍 ...

  3. (转)十分钟入门pandas

    本文是对pandas官方网站上<10 Minutes to pandas>的一个简单的翻译,原文在这里.这篇文章是对pandas的一个简单的介绍,详细的介绍请参考:Cookbook . 习 ...

  4. 十分钟掌握pandas中文版(pandas官方文档翻译)

    转载自 https://blog.csdn.net/jiangjiang_jian/article/details/80022918

  5. 十分钟(小时)学习pandas

    十分钟学习pandas 一.导语 这篇文章从pandas官网翻译:链接,而且也有很多网友翻译过,而我为什么没去看他们的,而是去官网自己艰难翻译呢? 毕竟这是一个学习的过程,别人写的不如自己写的记忆深刻 ...

  6. 【译】10分钟学会Pandas

    十分钟学会Pandas 这是关于Pandas的简短介绍主要面向新用户.你可以参考Cookbook了解更复杂的使用方法 习惯上,我们这样导入: In [1]: import pandas as pd I ...

  7. 十分钟搞定pandas内容

    目录 十分钟搞定pandas 一.创建对象 二.查看数据 三.选择器 十二.导入和保存数据 参考:http://pandas.pydata.org/pandas-docs/stable/whatsne ...

  8. 【NLP】十分钟快览自然语言处理学习总结

    十分钟学习自然语言处理概述 作者:白宁超 2016年9月23日00:24:12 摘要:近来自然语言处理行业发展朝气蓬勃,市场应用广泛.笔者学习以来写了不少文章,文章深度层次不一,今天因为某种需要,将文 ...

  9. 十分钟轻松让你认识ASP.NET MVC6

    这篇文章说明下如何在普通编辑器下面开发mvc6应用程序. 上篇文章: 十分钟轻松让你认识ASP.NET 5(MVC6) 首先安装mvc6的nuget包: 可以看到在project.json文件中添加了 ...

随机推荐

  1. 【超分辨率】- CVPR2019中SR论文导读与剖析

    CVPR2019超分领域出现多篇更接近于真实世界原理的低分辨率和高分辨率图像对应的新思路.具体来说,以前论文训练数据主要使用的是人为的bicubic下采样得到的,网络倾向于学习bicubic下采样的逆 ...

  2. [LeetCode] 355. Design Twitter 设计推特

    Design a simplified version of Twitter where users can post tweets, follow/unfollow another user and ...

  3. [LeetCode] 495. Teemo Attacking 提莫攻击

    In LOL world, there is a hero called Teemo and his attacking can make his enemy Ashe be in poisoned ...

  4. 【Python学习之十一】Numpy

    环境 虚拟机:VMware 10  Linux版本:CentOS-6.5-x86_64  客户端:Xshell4 FTP:Xftp4 python3.6 1.介绍NumPy(Numerical Pyt ...

  5. 源码分析之Handler

    Handler是Android中的消息机制实现,可以实现UI线程和子线程的消息传递,这里就来深入了解Android的消息机制,来分析Handler的源代码 入手实例 在Android开发中,子线程与主 ...

  6. java-统计一段句子中各单词出现的次数

    问题:统计一段句子中各单词出现的次数. 思路: 1.使用split方法将文章进行分割,我们这里以空格.逗号和句点为分隔符,然后存到一个字符串数组中. 2.创建一个hashMap集合,key是字符串类型 ...

  7. PHP保留两位小数显示

    <?php $num = '10.4567'; //第一种:利用round()对浮点数进行四舍五入 echo round($num,2).PHP_EOL; //10.46 //第二种:利用spr ...

  8. hashMap常见问题

    [解析hashMap的源码实现]      点击进入hashMap的源码实现 0.谈谈对hashMap的理解? 从底层结构.存取.扩容.冲突.实现原理.源码等方面说明. 1.你知道哪些常用的Map集合 ...

  9. VS2015如何在同一个解决方案下建立多个项目

    1.先按照常规的方法建一个项目: 2.点击解决方案:右键=>添加=>新建项目 注:本文链接:https://blog.csdn.net/weixin_43081805/article/de ...

  10. Tensorflow基本概念笔记

    一.TensorFlow使用简单,部署快捷 TensorFlow使用数据流图(计算图)来规划计算流程,可以将计算映射到不同的硬件和操作平台.凭借着统一的架构,TensorFlow可以方便的部署剑各种平 ...