博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
利用Python进行数据分析_Pandas_数据结构
阅读量:5167 次
发布时间:2019-06-13

本文共 4114 字,大约阅读时间需要 13 分钟。

申明:本系列文章是自己在学习《利用Python进行数据分析》这本书的过程中,为了方便后期自己巩固知识而整理。

首先,需要导入pandas库的Series和DataFrame

In [21]: from pandas import Series,DataFrameIn [22]: import pandas as pd

Series

是一种类似一维数组的对象,是一组数据与索引的组合。如果没设置索引,默认会加上。

In [23]: obj = Series([4,3,5,7,8,1,2])In [24]: objOut[24]:0    41    32    53    74    85    16    2dtype: int64

自定义索引

In [28]: obj = Series([4,3,2,1],index=['a','b','c','d'])In [29]: objOut[29]:a    4b    3c    2d    1dtype: int64

获取values和index的值

In [30]: obj.indexOut[30]: Index(['a', 'b', 'c', 'd'], dtype='object')In [31]: obj.valuesOut[31]: array([4, 3, 2, 1], dtype=int64)

通过索引获取Series的元素值

In [32]: obj['c']Out[32]: 2

还能当字典

In [33]: if 'a' in obj:    ...:     print("a在对象里!")    ...:a在对象里!

 

也能将字段转换成Series对象(有序)

In [56]: data = {'a':1,'b':2,'c':3,'d':4}

In [57]: obj = Series(data)

In [58]: obj

Out[58]:
a    1
b    2
c    3
d    4
dtype: int64

In [59]: data = {'a':1,'b':2,'d':3,'c':4}

In [60]: obj = Series(data)

In [61]: obj

Out[61]:
a    1
b    2
c    4
d    3
dtype: int64

字典data中,我加一个index会怎样?

In [72]: datas = {
'a','b','d','c','e'}In [73]: objs = Series(data,index=datas)In [74]: objsOut[74]:c 4.0e NaNb 2.0d 3.0a 1.0dtype: float64

 

isnull 检测缺失

In [75]: pd.isnull(objs)Out[75]:c    Falsee     Trueb    Falsed    Falsea    Falsedtype: bool

notnull 检测不缺失

In [76]: pd.notnull(objs)Out[76]:c     Truee    Falseb     Trued     Truea     Truedtype: bool

Series的检测缺失方法

In [78]: objs.isnull()Out[78]:c    Falsee     Trueb    Falsed    Falsea    Falsedtype: boolIn [79]: objs.notnull()Out[79]:c     Truee    Falseb     Trued     Truea     Truedtype: bool

DataFrame

DataFrame 是表格型数据结构,含有一组有序的列。

In [86]: data = {
'class':['语文','数学','英语'],'score':[120,130,140]}In [87]: frame = DataFrame(data)In [88]: frameOut[88]: class score0 语文 1201 数学 1302 英语 140

 

In [95]: frame = DataFrame(data)In [96]: frameOut[96]:  class  score0    语文    1201    数学    1302    英语    140

按指定序列进行排序

In [98]: DataFrame(data,columns={
'score','class'})Out[98]: score class0 120 语文1 130 数学2 140 英语

NaN补充

In [99]: DataFrame(data,columns={
'score','class','teacher'})Out[99]: score class teacher0 120 语文 NaN1 130 数学 NaN2 140 英语 NaN

 

给NaN批量赋值

方法一:

In [107]: frame['teacher'] = '周老师'In [108]: frameOut[108]:   score class teacher0    120    语文     周老师1    130    数学     周老师2    140    英语     周老师

方法二:

In [110]: frame.teacher = '应老师'In [111]: frameOut[111]:   score class teacher0    120    语文     应老师1    130    数学     应老师2    140    英语     应老师

通过字典标记的方式,可以将DataFrame的列转成一个Series

In [112]: frame.teacherOut[112]:0    应老师1    应老师2    应老师Name: teacher, dtype: object

将列表或数组赋值给Frame的某一列

In [114]: val = Series(['周老师','应老师','小周周'],index=[0,1,2])In [115]: frame['teacher'] = valIn [116]: frameOut[116]:   score class teacher0    120    语文     周老师1    130    数学     应老师2    140    英语     小周周

为Frame创建一个新的列

In [125]: frame['yesorno'] =0In [126]: frameOut[126]:   score class teacher  yesorno0  False    语文     周老师        01   True    数学     应老师        02  False    英语     小周周        0

创建一个新列,并赋值一个布尔类型的Series

In [119]: frame['yesorno'] = frame.teacher == '应老师'In [120]: frameOut[120]:   score class teacher  yesorno0  False    语文     周老师    False1   True    数学     应老师     True2  False    英语     小周周    False

删除Frame的列

In [122]: del frame['yesorno']In [123]: frameOut[123]:   score class teacher0  False    语文     周老师1   True    数学     应老师2  False    英语     小周周

嵌套字典

外层字典的键作为Frame的列,内层键作为行索引。

In [10]: from pandas import DataFrame,SeriesIn [11]: data = {
'a':{
'aa':2,'aaa':3},'b':{
'bb':4,'bbb':5}}In [12]: frame = DataFrame(data)In [13]: frameOut[13]: a baa 2.0 NaNaaa 3.0 NaNbb NaN 4.0bbb NaN 5.0

索引对象

pandas的索引index其实也是一个对象。由index类继承而衍生出来的还有Int64Index\MultiIndex\DatetimeIndex\PeriodIndex等。

In [31]: frame.indexOut[31]: Index(['aa', 'aaa', 'bb', 'bbb'], dtype='object')

index对象有以下属性(方法):

insert(i,str)属性的使用案例:

In [31]: frame.indexOut[31]: Index(['aa', 'aaa', 'bb', 'bbb'], dtype='object')In [32]: frame.index.insert(5,'fff')Out[32]: Index(['aa', 'aaa', 'bb', 'bbb', 'fff'], dtype='object')

转载于:https://www.cnblogs.com/zhouwp/p/8432521.html

你可能感兴趣的文章
杂项-CORS:CORS(跨域资源共享)
查看>>
杨柳目-杨柳科:杨柳科
查看>>
Node.js:JXcore
查看>>
oracle数据投毒,Oracle Database Server TNS Listener远程数据投毒漏洞(CVE-2012-1675)的完美解决方法...
查看>>
oracle创建函数难点,oracle创建函数遇到的坑,
查看>>
PHP抽象函数的依赖注入,依赖注入_PHP编程_互联网开发技术网_传播最新的编程技术_php361.com...
查看>>
linux下创建nginx虚拟目录详解,配置Nginx服务器虚拟目录
查看>>
嵌入式linux内核gpio使用,嵌入式Linux下面查看gpio使用情况
查看>>
利用linux命令进行入侵检测分析总结,Linux之入侵痕迹清理总结
查看>>
linux 文件命名空间,Linux 命名空间
查看>>
Block的本质
查看>>
Pixel 3a 开箱及 Google Fi 服务评测视频
查看>>
用一个div模拟textarea的实现【前端每日一题-15】
查看>>
Python学习教程:爬虫分析了京东内衣销售记录,哪个size最多?
查看>>
有Excel、Tableau、PowerBI都能做数据分析,为什么还要用Python
查看>>
redis如何进行分库存储和选择模糊清除缓存
查看>>
spring security退出方法
查看>>
从获得字符串中获取数字
查看>>
传入一个月份获取该月的统计信息
查看>>
分组取出值最大的数据
查看>>