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

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

其实不止10分钟,这么多,至少一天

一、numpy和pandas

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

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

二、数据类型

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

二、官网API

1.API之前,我们应该学习数据导入

pandas可以导入csv数据集

import pandas as pd?food_info = pd.read_csv("xxx.csv")print(type(food_info))print(food_info)
2.pd.Series 获取一个Series类型
import numpy as npimport pandas as pd# 我们可以发现,这边可以使用numpy,证明pandas是基于numpy构建的s = pd.Series([1,3,5,np.nan,6,8])print(s)
打印0    1.01    3.02    5.03    NaN4    6.05    8.0dtype: float64
3.获取日期

从第一个date开始,获取6个连续日期

dates = pd.date_range(‘20130101‘,periods=6)dates
打印DatetimeIndex([‘2013-01-01‘, ‘2013-01-02‘, ‘2013-01-03‘, ‘2013-01-04‘,               ‘2013-01-05‘, ‘2013-01-06‘],              dtype=‘datetime64[ns]‘, freq=‘D‘)
4.第一次使用dataframe类型

np.random.randn(6,4) 获取6行4列数据集

index是列

columns是行

df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=list(‘ABCD‘))df
打印结果A   B   C   D2013-01-01  0.284681    1.881328    0.310425    -2.5273292013-01-02  -0.209723   -1.410186   0.865336    0.8932602013-01-03  -0.095578   0.576282    -1.347052   -0.0553702013-01-04  -1.216527   0.423745    -1.110668   -1.6824052013-01-05  0.275501    -0.844457   -0.954631   2.3125782013-01-06  -1.384552   1.539255    -1.499076   -0.916121
5.查看数据类型
df2.dtypes
A           float64B    datetime64[ns]C           float32D             int32E          categoryF            objectdtype: object
6.查看前两行
df.head(2)
A   B   C   D2013-01-01  0.284681    1.881328    0.310425    -2.5273292013-01-02  -0.209723   -1.410186   0.865336    0.893260
7.查看尾三行
df.tail(3)
A   B   C   D2013-01-04  -1.216527   0.423745    -1.110668   -1.6824052013-01-05  0.275501    -0.844457   -0.954631   2.3125782013-01-06  -1.384552   1.539255    -1.499076   -0.916121
8.查看索引(行名)
df.index
DatetimeIndex([‘2013-01-01‘, ‘2013-01-02‘, ‘2013-01-03‘, ‘2013-01-04‘,               ‘2013-01-05‘, ‘2013-01-06‘],              dtype=‘datetime64[ns]‘, freq=‘D‘)
9.查看列名
df.columns
Index([‘A‘, ‘B‘, ‘C‘, ‘D‘], dtype=‘object‘)
10.转化为numpy类型的数组
df.to_numpy()
array([[ 0.28468077,  1.8813276 ,  0.31042514, -2.52732926],       [-0.20972286, -1.41018638,  0.86533622,  0.89325968],       [-0.09557804,  0.57628249, -1.34705203, -0.05537029],       [-1.21652719,  0.42374501, -1.11066844, -1.6824053 ],       [ 0.27550116, -0.84445705, -0.95463056,  2.31257796],       [-1.38455249,  1.53925476, -1.49907627, -0.91612064]])
11.查看描述
df.describe()
A   B   C   Dcount   6.000000    6.000000    6.000000    6.000000mean    -0.391033   0.360994    -0.622611   -0.329231std 0.733423    1.291526    0.972213    1.763848min -1.384552   -1.410186   -1.499076   -2.52732925% -0.964826   -0.527407   -1.287956   -1.49083450% -0.152650   0.500014    -1.032650   -0.48574575% 0.182731    1.298512    -0.005839   0.656102max 0.284681    1.881328    0.865336    2.312578

依次为:总数、均值、标准差、最小值、25%的值、50%的值、75%的值、最大值

12.转置矩阵
df.T
    2013-01-01  2013-01-02  2013-01-03  2013-01-04  2013-01-05  2013-01-06A   0.284681    -0.209723   -0.095578   -1.216527   0.275501    -1.384552B   1.881328    -1.410186   0.576282    0.423745    -0.844457   1.539255C   0.310425    0.865336    -1.347052   -1.110668   -0.954631   -1.499076D   -2.527329   0.893260    -0.055370   -1.682405   2.312578    -0.916121
13.索引排序,按照维度为一(即横坐标),排序,升序为false
df.sort_index(axis=1,ascending=False)
?D   C   B   A2013-01-01  -2.527329   0.310425    1.881328    0.2846812013-01-02  0.893260    0.865336    -1.410186   -0.2097232013-01-03  -0.055370   -1.347052   0.576282    -0.0955782013-01-04  -1.682405   -1.110668   0.423745    -1.2165272013-01-05  2.312578    -0.954631   -0.844457   0.2755012013-01-06  -0.916121   -1.499076   1.539255    -1.384552
14.按照B进行横向排序
df.sort_values(by=‘B‘)
A   B   C   D2013-01-02  -0.209723   -1.410186   0.865336    0.8932602013-01-05  0.275501    -0.844457   -0.954631   2.3125782013-01-04  -1.216527   0.423745    -1.110668   -1.6824052013-01-03  -0.095578   0.576282    -1.347052   -0.0553702013-01-06  -1.384552   1.539255    -1.499076   -0.9161212013-01-01  0.284681    1.881328    0.310425    -2.527329
15.获取列标为‘A‘的
df[‘A‘]
2013-01-01    0.2846812013-01-02   -0.2097232013-01-03   -0.0955782013-01-04   -1.2165272013-01-05    0.2755012013-01-06   -1.384552Freq: D, Name: A, dtype: float64
16.获取横标切片
df[0:3]
A   B   C   D2013-01-01  0.284681    1.881328    0.310425    -2.5273292013-01-02  -0.209723   -1.410186   0.865336    0.8932602013-01-03  -0.095578   0.576282    -1.347052   -0.055370
17.获取横标切片(value)
df[‘20130102‘:‘20130104‘]
A   B   C   D2013-01-02  -0.209723   -1.410186   0.865336    0.8932602013-01-03  -0.095578   0.576282    -1.347052   -0.0553702013-01-04  -1.216527   0.423745    -1.110668   -1.682405
18.获取第一行
df.loc[dates[0]]
A    0.284681B    1.881328C    0.310425D   -2.527329Name: 2013-01-01 00:00:00, dtype: float64
19.获取行切片
df.loc[:,[‘A‘,‘B‘]]
A   B2013-01-01  0.284681    1.8813282013-01-02  -0.209723   -1.4101862013-01-03  -0.095578   0.5762822013-01-04  -1.216527   0.4237452013-01-05  0.275501    -0.8444572013-01-06  -1.384552   1.539255
df.loc[‘20130102‘:‘20130104‘,[‘A‘,‘B‘]]df.loc[‘20130102‘,[‘A‘,‘B‘]]
20.获取唯一元素
df.loc[dates[0],‘A‘]//这是唯一元素df.at[dates[0],‘A‘]//与上面一样,官网这样解释For getting fast access to a scalar,更快的访问维度数据
21.通过索引获取第一行(之前的loc是通过值获取行)
df.iloc[3]
A    1.191786B   -1.384943C   -1.463160D    0.527332Name: 2013-01-04 00:00:00, dtype: float64
22.索引获取切片
df.iloc[3:5,0:2]df.iloc[[1,2,4],[0,2]]df.iloc[1:3,:]df.iloc[1,1]df.iat[1,1]df[df.A>0]
23.拷贝赋值
df2 = df.copy()df2[‘E‘] = [‘one‘,‘two‘,‘three‘,‘four‘,‘five‘,‘six‘]df2

结果多一列E

24.进行判断是否贼取值
df2[df2[‘E‘].isin([‘two‘,‘four‘])]
输出:A   B   C   D   E2013-01-02  0.847134    -0.003377   0.353925    0.438065    two2013-01-04  1.191786    -1.384943   -1.463160   0.527332    four
25.进行按照日期取6个序列
s1 = pd.Series([1,2,3,4,5,6],index=pd.date_range(‘20130102‘,periods=6))s1
26.进行取赋值
df[‘F‘]=s1df
A   B   C   D   F2013-01-01  0.284681    1.881328    0.310425    -2.527329   NaN2013-01-02  -0.209723   -1.410186   0.865336    0.893260    1.02013-01-03  -0.095578   0.576282    -1.347052   -0.055370   2.02013-01-04  -1.216527   0.423745    -1.110668   -1.682405   3.02013-01-05  0.275501    -0.844457   -0.954631   2.312578    4.02013-01-06  -1.384552   1.539255    -1.499076   -0.916121   5.0

原文地址:https://www.cnblogs.com/littlepage/p/11964838.html

时间: 2024-10-10 10:27:47

十分钟掌握Pandas(上)——来自官网API的相关文章

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

十分钟掌握pandas 文档版本:0.20.3 这是一个对pandas简短的介绍,适合新用户.你可以在Cookbook中查看更详细的内容. 通常,我们要像下面一样导入一些包. In [1]: import pandas as pd In [2]: import numpy as np In [3]: import matplotlib.pyplot as plt 创建对象 用一个包含值的序列创建一个Series,pandas会创建一个默认的整数索引 In [4]: s = pd.Series([

今天产品提了一个需求,要求用户上传图片进行剪切,上网搜了一下 cropperjs 挺不错,官网api不怎么看得懂,记录一下使用方法

我使用的是vue,移动端的项目. 官网地址:cropperjs GitHub地址:https://github.com/fengyuanchen/cropperjs/blob/master/README.md 先看效果图,不然没有吸引力啊!!哈哈 这里只记录使用方法,至于怎么实现和要修改一些参数,大家前往官网api了解. 首先我们先安装 npm install cropperjs exif-js 新建一个文件 存放cropperjs 处理图片的方法(我放到了 static 文件下的 clippe

怎么打开YouTube看视频,国内如何上YouTube官网的教程!

YouTube现在是年轻一代的很流行的一个视频网页的(电脑手机都可以看的).但是很多都知道YouTube国内无法正常打开.需要借助一些工具(君越加速器)后才能打开.我们现在直接打开啊YouTube试试看看是显示什么.网络无法连接之内的 .好的现在看小编怎么打开YouTube官网的.首先我们打开百度搜索,找一下小编正在使用的这个工具的官网(君越加速器)打开这个网站注册这个工具的账号,下载这个工具(君越加速器)好了,我们现在用您注册的账号登入这个工具(君越加速器)选择连接一下现在可以正常打开了的 1

十分钟入门pandas数据结构和索引

pandas数据结构和索引是入门pandas必学的内容,这里就详细给大家讲解一下,看完本篇文章,相信你对pandas数据结构和索引会有一个清晰的认识. 一.数据结构介绍 在pandas中有两类非常重要的数据结构,即序列Series和数据框DataFrame.Series类似于numpy中的一维数组,除了通吃一维数组可用的函数或方法,而且其可通过索引标签的方式获取数据,还具有索引的自动对齐功能:DataFrame类似于numpy中的二维数组,同样可以通用numpy数组的函数和方法,而且还具有其他灵

做个伪IE浏览器?!【来自官网】

原文:http://docwiki.embarcadero.com/RADStudio/Seattle/en/Building_a_VCL_Forms_Web_Browser_Application 选择File > New > 来新建一个VCL窗体应用程序 从Win32页面的工具面板,添加TToolBar 从Standard页面的工具面板,添加按钮控件和TEdit控件 设置解说词属性的每个按钮控件如下:后退,前进和主页 选择编辑框窗体设计器上,去检查对象并选择alclient对于对齐财产 从

【转载】koa相关知识(来自官网)

什么是Koa? koa 是由 Express 原班人马打造的,致力于成为一个更小.更富有表现力.更健壮的 Web 框架.使用 koa 编写 web 应用,通过组合不同的 generator,可以免除重复繁琐的回调函数嵌套,并极大地提升错误处理的效率.koa 不在内核方法中绑定任何中间件,它仅仅提供了一个轻量优雅的函数库,使得编写 Web 应用变得得心应手. Koa的应用? Koa 应用是一个包含一系列中间件 generator 函数的对象. 这些中间件函数基于 request 请求以一个类似于栈

Content Providers的步骤,来自官网文档

Content Providers In this document Content provider basics Querying a content provider Modifying data in a provider Creating a content provider Content URI summary Key classes ContentProvider ContentResolver Cursor Content providers store and retriev

Reveal常用技巧(翻译来自Reveal官网blog)

翻译来自官网:http://revealapp.com/blog/reveal-common-tips-cn.html 以下基于Reveal 1.6. 用于快速上手的内置应用 刚刚下载Reveal,啥都还没配置呢,想先随便玩玩看,怎么办? 我们花了不少时间开发这个复杂程度类似与实际场景的Sample应用──Soundstagram(音频分享版的Instagram, ¯\_(ツ)_/¯),就是为了让大家能最快速地上手Reveal,尝试它的各种强大功能. 在 Help 菜单项中,点击 Inspect

Angular2官网项目 第一天

来自官网: 这篇<英雄指南>涵盖`了 Angular 的核心原理.这次构建的应用会涉及很多特性:获得并显示英雄列表,编辑所选英雄的详情,并在英雄数据的多个视图之间建立导航.这些特性,在成熟的.数据驱动的应用中经常见到. 完成本教程后,我们将学习足够的 Angular 核心技术,并确信 Angular 确实能做到我们需要它做的. 我们将涵盖大量入门级知识,同时我们也会看到大量链接,指向更深入的章节. 一 :为本地开发搭建环境 a.检查@angular/cli版本. 在命令行输入 ng -v  -