北京 | 深度学习与人工智能研修

12月23-24日

再设经典课程  重温深度学习
阅读全文
>

正文共3017个字 4张图,预计阅读时间:18分钟。

pandas有两个最主要的数据结构,分别是Series和DataFrame,所以一开始的任务就是好好熟悉一下这两个数据结构。


1、Series

官方文档: pandas.Series (http://pandas.pydata.org/pandas-docs/stable/generated/pandas.Series.html#pandas.Series )

Series是类似于一维数组的对象,由一组数据(各种numpy的数据类型)以及一组与之相关的标签组成。首先看一下怎么构造出Series来。

class pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)

参数: 
data : 类array的,字典,或者是标量 
index : 索引列表,和data的长度一样 
dtype : numpy.dtype,没有的话,会根据data内容自动推断 
copy : boolean,默认是False

常用属性

接下来给出属性,常用的属性经常用到的不多,其他的属性可以查上面给出的文档。

属性:

dtype 数据元素的类型. 
empty 是否为空. 
index 索引对象 
ix A primarily label-location based indexer, with integer position fallback. 
loc Purely label-location based indexer for selection by label. 
name 
nbytes return the number of bytes in the underlying data 
ndim 返回数据部分的维度大小 
shape 返回一个元组,表示数据的形状 
size 返回元素的数量。 
strides return the strides of the underlying data 
values 返回Series对象中的值部分,ndarray类型

这里直接给出例子来创建Series。有很多中创建方式,很繁杂,所以就把例子放在一起,就一目了然了。

# -*- coding: utf-8 -*-

from __future__ import print_function,division

#from pandas import Series,DataFrame

import pandas as pd

#传入data却不传入索引列表,那么自动创建0~N-1的索引

S=pd.Series(data=[1,2,3,4])

print ("S:\n",S)

#传入了data和索引列表

print ()

S2=pd.Series(data=[4,3,2,1],index=["a","b","c","d"])

print ("S2:\n",S2)

print (S2.index)

#通过索引的方式来访问一个或者一列值(很像字典的访问)

print (S2['c'])

print (S2[['a','b','c']])#通过字典创建(上面还说了很像一个字典)

print () dict={"leo":24,"kate":23,"mat":11}

S3=pd.Series(data=dict)

print ("S3:\n",S3)

#即使是传入一个字典,还是可以传入一个索引的,

# 要是索引和字典中的相同,那么就会并进去

# 要是不相同,那么找不到值,相应的value就会被设为NaN

print () idx=["leo","kate","pig","cat"]

S4=pd.Series(data=dict,index=idx)

print ("S4:\n",S4)

结果:详解看注释 


2、Data Frame

官方文档:DataFrame

很自然的,首先依旧是要看一下怎么创建DataFrame对象.下面是构造函数. 
class pandas.DataFrame(data=None,index=None,columns=None, dtype=None, copy=False)

参数: 
data : 传入的数据,可以是二维的ndarray,字典,或者一个DataFrame对象.还可以传入各种类型组合的数据,这里不细讲了,在实际中遇到再讲 
index : Index对象或者array-like型,可以简单的理解为”行”索引. 
columns :Index对象或者array-like型,可以简单的理解为列索引. 
dtype : 元素的类型. 
copy : 布尔值,表示是否显式复制.默认为False.

这里直接通过例子来说明DataFrame的创建.

创建DataFrame对象最常用的就是传入等长列表组成的字典啦:

import numpy as np

import pandas as pd

#等长列表组成的字典

data={

"name":["leo","tom","kate","pig"],

"age":[10,20,30,40],

"weight":[50,50,40,200]

}

frame=pd.DataFrame(data=data)

print("frame:")

print(frame)

#指定列顺序columns

frame2=pd.DataFrame(data=data,columns=["name","weight","age"])

print("frame2:")

print(frame2)

#指定index,其中columns参数里面没有的,会被设置为NaN

frame3=pd.DataFrame(data=data,columns=["name","weight","age","height"],index=["one","two","three","four"])

print("frame3:")

print(frame3)

#索引一列

print("name:\n",frame3["name"])

print("weight:\n",frame3.weight)

#改变一列的值

frame3["height"]=100

print("frame3")

print(frame3)

结果: 

常用属性

T:转秩 
at 基于索引的快速标量访问器,比如使用的时候xxx.at[index,colume] 
iat 整形索引快速访问标量,使用方式例如obj.iat[1,2],相当于依靠位置访问某个元素 
dtypes 返回各个列的元素类型. 
empty 判断是否是空 
loc 通过index来选择,可以得到标量,也可以得到一个Series对象.使用方式可以参照at属性. 
iloc 整形索引,作用和loc一模一样,只是这个是通过整形来索引.这些都只能够得到单个的行或者列. 
ix 可以根据标签选择单个或者一组行,单个列或者一组列,是非常灵活的属性. 
ndim 维度数目Number of axes / array dimensions 
shape 形状 
size 所有元素数量 
values 返回表示值的ndarray

这里是第一部分的一些示例代码:XierHacker/LearnPandas

原文链接:http://blog.csdn.net/xierhacker/article/details/60878855

查阅更为简洁方便的分类文章以及最新的课程、产品信息,请移步至全新呈现的“LeadAI学院官网”:

www.leadai.org

请关注人工智能LeadAI公众号,查看更多专业文章

大家都在看


LSTM模型在问答系统中的应用

基于TensorFlow的神经网络解决用户流失概览问题

最全常见算法工程师面试题目整理(一)

最全常见算法工程师面试题目整理(二)

TensorFlow从1到2 | 第三章 深度学习革命的开端:卷积神经网络

装饰器 | Python高级编程

今天不如来复习下Python基础


点击“阅读原文”直接打开报名链接

Python数据分析模块 | pandas做数据分析(一):基本数据对象相关推荐

  1. Python数据分析模块 | pandas做数据分析(二):常用预处理操作

    北京 | 深度学习与人工智能研修 12月23-24日 再设经典课程  重温深度学习 阅读全文 > 在数据分析和机器学习的一些任务里面,对于数据集的某些列或者行丢弃,以及数据集之间的合并操作是非常 ...

  2. Python数据分析模块 | pandas做数据分析(三):统计相关函数

    北京 |深度学习与人工智能研修 12月23-24日 再设经典课程   重温深度学习 阅读全文 > 计算操作 1.pandas.series.value_counts Series.value_c ...

  3. c++输出txt格式循环一组数据后换行再循环一次_numpy、pandas以及用pandas做数据分析的案例...

    本文也是秦路老师python教程的学习笔记.这篇也是发给超哥看的:很多人说python很简单很好学,也有很多人说python没有java和c的功能强大.但是这都不重要,重要的是我们想学了,想画图也好做 ...

  4. 这十套练习,教你如何用Pandas做数据分析

    最新工作比较忙,python这块搁置了好久都没有好好学习以及更新相关学习笔记,立下flag,争取两天更新一个练习题,到十一月初更新完这块内容 练习1-开始了解你的数据(2021-11-02已完成) 练 ...

  5. 【转】数据运营经验:什么是数据分析?怎么做数据分析?

    那到底什么是数据分析呢? 说说数据哥的理解:数据分析是基于商业目的,有目的的进行收集.整理.加工和分析数据,提炼有价信息的一个过程. 其过程概括起来主要包括:明确分析目的与框架.数据收集.数据处理.数 ...

  6. csv 20位数据 如何打开可以预览完整数字_干货Python Pandas 做数据分析之玩转 Excel 报表分析...

    本篇文章选自作者在 GitChat 的分享,若有什么问题,可在公众号回复「小助手」添加小助手微信,邀请你进入技术交流群. 各位朋友大家好,非常荣幸和大家聊一聊用 Python Pandas 处理 Ex ...

  7. pandas 取excel 中的某一列_干货Python Pandas 做数据分析之玩转 Excel 报表分析

    本篇文章选自作者在 GitChat 的分享,若有什么问题,可在公众号回复「小助手」添加小助手微信,邀请你进入技术交流群. 各位朋友大家好,非常荣幸和大家聊一聊用 Python Pandas 处理 Ex ...

  8. Python Pandas 做数据分析之玩转 Excel 报表分析

    各位朋友大家好,非常荣幸和大家聊一聊用 Python Pandas 处理 Excel 数据的话题.因为工作中一直在用 Pandas,所以积累了一些小技巧,在此借 GitChat 平台和大家分享一下心得 ...

  9. python matplotlib模块解析_Python数据分析模块二:Matplotlib

    1. Matplotlib简介 Matplotlib是目前应用最广泛的用于制图及其他二维数据可视化的Python库.在命令行中输入pip install matplotlib即可进行安装.在matpl ...

最新文章

  1. CISSP的成长之路(十五):系统架构和设计之安全标准
  2. 【牛客 - 318L】彪神666(水题,半高精度,递推,trick)
  3. 近期可能会研究和讨论的个人动向
  4. CentOS7系统服务管理systemctl
  5. Rust 语言本身的问题
  6. 爬虫_抓取51job招聘数据
  7. C 风格字符串,C++string类,MFC,CString类的区别。
  8. 操作系统概念之OSAL
  9. easydarwin 安装_win10安装EasyDarwin并作为流媒体服务器的推流和拉流实例
  10. 信息技术 用计算机做科学实验报告,8.用计算机做科学实验.doc
  11. visio2010取消连接线交叉出的跨线
  12. 机器人控制器编程实践指导书旧版-实践一 LED灯(数字量)
  13. MATLAB-蒙特卡罗方法
  14. 使用Enterprise Architect设计数据库-赋操作截图
  15. python中的f函数_05-python中函数的使用
  16. Java接入支付宝支付(沙箱)
  17. 移动端自动轮播可滑动轮播图
  18. 一个成功人士的创业心得
  19. Mybatis之批量更新数据(批量update)
  20. 邻接表:构造有权图(使用头插法)

热门文章

  1. php开发简易论坛教程,[php] 我的微型论坛的简单教程[已完成]第3/8页
  2. 深度linux运行卡顿,Deepin很卡怎么办?Deepin卡顿解决方法盘点
  3. spyder中绘图无法显示负号_[转载]Matlab常用函数
  4. python3.4安装vc_Python3.4 用 pip 安装lxml时出现 “Unable to find vcvarsall.bat ”?
  5. 西电计算机达标测试挂科保研,西电竞赛保研
  6. 网页抢东西插件_强烈推荐一款Chrome插件DownFaster 一键下载网页资源
  7. linux7.0安装过程详解,图解红旗Linux7.0安装过程.doc
  8. python找不到模块文件夹_python – __init__.py在同一目录中找不到模块
  9. python全栈计划_Python 全栈学习视频教程,包含了从 0-99天的全栈学习计划,估计可以学习 1024 小时。...
  10. day16- django