内容简介
很早就开始接触python的pandas库,但是没有系统的学习过,只是在网上找些碎片来学习,因此很多东西都是半知半解,用起来也是糊里糊涂,很开心能有一段完整的时间来系统的学习python以及pandas库,以后处理数据也能得心应手~
pandas是一个强大的工具,他有两种主要的数据结构:Series和DataFrame,还有一些基于这两种结构的基本功能,以及汇总和统计功能,接下来会分4篇博客来详细的介绍pandas的使用。这4篇博客的主题为:
1)Series和DataFrame介绍和构建
2)Series和DataFrame的索引、切片、过滤,算术运算与数据对齐,函数映射,排序等
3)Series和DataFrame的汇总和计算统计描述
4)Series和DataFrame的层次化索引
本篇博客主要内容:
1)Series构建
2)DataFrame构建
3)索引属性
Series
Series = 一维数组 + 数据标签(索引)
Series创建
import pandas as pd
from pandas import Series,DataFrame
Series()输入可以是列表,可以是数组(各种numpy数据类型),当不指定索引时,系统自动加上0-(N-1)的整数索引(N为数组大小),还可以是字典类型,字典的键会被当成索引,字典的值会被当做Series的值。
#列表构建Series
obj1 = Series([1,2,3,4])
obj1
0 1
1 2
2 3
3 4
dtype: int64
#字典创建Series
stata = {
'a':10,'b':20,'c':30,'d':40}
obj2 = Series(stata)
obj2
a 10
b 20
c 30
d 40
dtype: int64
import numpy as np
#自定义索引
obj3 = Series(np.arange(4),index=['aa','bb','cc','dd'])
obj3
aa 0
bb 1
cc 2
dd 3
dtype: int32
obj1
0 1
1 2
2 3
3 4
dtype: int64
#注意利用Series构建数组时,index不能指定,可以通过先复制,在改变index实现修改原Series的索引
obj4 = Series(obj1,index=['aa','bb','cc','dd'])
obj4
aa NaN
bb NaN
cc NaN
dd NaN
dtype: float64
Series 访问
1)通过索引访问包括索引切片
2)通过逻辑运算访问
3)通过.values和.index访问
obj1
0 1
1 2
2 3
3 4
dtype: int64
obj1[0]
1
obj1[1:3]
1 2
2 3
dtype: int64
obj1.values
array([1, 2, 3, 4], dtype=int64)
obj1.index
RangeIndex(start=0, stop=4, step=1)
obj1[obj1>2]#逻辑表达式