首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pandas 学习之 Series

Pandas 学习之 Series

作者头像
一份执着✘
发布2018-06-04 17:13:32
7060
发布2018-06-04 17:13:32
举报
文章被收录于专栏:赵俊的Java专栏赵俊的Java专栏

简介

Series 是一个类数组的数据结构,同时带有标签(lable)或者说索引(index)。

常用方法与属性

属性或方法

描述

axes

返回行轴标签列表。

dtype

返回对象的数据类型(dtype)。

empty

如果系列为空,则返回True。

ndim

返回底层数据的维数,默认定义:1。

size

返回基础数据中的元素数。

values

将系列作为ndarray返回。

head()

返回前n行。

tail()

返回最后n行。

创建

下边生成一个最简单的 Series 对象,因为没有给 Series 指定索引,所以此时会使用默认索引(从 0 到 N-1 )。

12345

#coding=utf-8import numpy as npimport pandas as pds = pd.Series([1, 3, 6, np.nan, 44, 1])

0     1.0
1     3.0
2     6.0
3     NaN
4    44.0
5     1.0
dtype: float64

当要生成一个指定索引的 Series 时:

1

s = pd.Series([1, 3, 6, np.nan, 44, 1],index = ['a', 'b', 'c', 'd', 'e', 'f'])

a     1.0
b     3.0
c     6.0
d     NaN
e    44.0
f     1.0
dtype: float64

也可以通过一个字典来创建 Series 对象:

12

d = {'Java': 35000, 'PHP': 71000, 'Python': 16000, 'JavaScript': 5000}ser = pd.Series(d)

Java          35000
JavaScript     5000
PHP           71000
Python        16000
dtype: int64

读取

根据行号读取上面用字典创建的 Series:

1234567891011

ser[0] #读取第 0 行的元素ser[1:] #支持 Python 的切片,读取第一行及后面所有的元素ser["Java"] #根据索引值来读取,注意如果索引不存在,则会报 KeyErrorser[['Java','PHP']] #读取多条指定索引值的数据ser.values #获取所有的值ser.index #获取所有的索引

35000

JavaScript     5000
PHP           71000
Python        16000
dtype: int64

35000

Java    35000
PHP     71000
dtype: int64

[35000  5000 71000 16000]

Index([u'Java', u'JavaScript', u'PHP', u'Python'], dtype='object')

运算

单个 Series 运算

Pandas 的 Series 保留了 Numpy 对矩阵的一些操作(四则运算,数据函数等),并同时保持索引的使用:

123456789

ser.sum()ser.min()ser.max()ser * 2ser[ser > 10000]

127000

5000

71000

Java           70000
JavaScript     10000
PHP           142000
Python         32000
dtype: int64

Java      35000
PHP       71000
Python    16000
dtype: int64

多个 Series 运算

多个 Series 之间也可以进行运算,但你可能会考虑一个问题,就是我两个 Series 之间的索引都不一样,怎么计算,先看个例子吧:

12345678910111213141516

#coding=utf-8import numpy as npimport pandas as pdd = {'Java': 35000, 'PHP': 71000, 'Python': 16000, 'JavaScript': 5000}ser = pd.Series(d)d1 = {'Java': 50000, 'PHP': 800, 'Python': 100, 'JavaScript': 6000, 'C#':900}ser1 = pd.Series(d1)ser + ser1ser - ser1# 乘除写法都一样,这里不再演示ser[1:] + ser1

Java          35000
JavaScript     5000
PHP           71000
Python        16000
dtype: int64

C#              900
Java          50000
JavaScript     6000
PHP             800
Python          100
dtype: int64

C#                NaN
Java          85000.0
JavaScript    11000.0
PHP           71800.0
Python        16100.0
dtype: float64

C#                NaN
Java         -15000.0
JavaScript    -1000.0
PHP           70200.0
Python        15900.0
dtype: float64

C#                NaN
Java              NaN
JavaScript    11000.0
PHP           71800.0
Python        16100.0
dtype: float64

由此可见,当多个 Series 之间进行计算时,会自动对齐索引,匹配不上的索引会自动设为 NaN,即结果为空,表示缺失。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-11-102,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简介
  • 常用方法与属性
  • 创建
  • 读取
  • 运算
    • 单个 Series 运算
      • 多个 Series 运算
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档