您的位置:首页 > 其它

pandas入门(一)

2018-01-07 19:23 351 查看


pandas系列—pandas库简介


一、pandas概述

pandas是提供高性能易用数据类型和分析工具的第三方库 
导入:
import pandas as pd
1

注:pandas库是基于Numpy实现的 

一个简单的小例子:
import pandas as pd

e=pd.Series(range(5))
e
1
2
3
4

Out[7]: 

0 0 

1 1 

2 2 

3 3 

4 4 

dtype: int32 
其中,左面一列为索引,右面一列为数据


二、pandas的数据类型

pandas主要提供两种数据类型:Series和DataFrame 

其中,Series用来表示一维数据,DataFrame主要用来表示二维数据,也可表示多维数据。这两种数据类型在后面会详细介绍。


三、Numpy和Pandas对比

NumpyPandas
基础数据类型扩展数据类型
关注数据的结构表达关注数据的应用表达
维度:数据间的关系数据与索引间的关系


pandas系列—pandas库的Series类型

pandas系列pandas库的Series类型
一Series概述
二创建Series类型的方法
1
从标量值创建
2
从字典类型创建
3
从ndarray类型创建

三Series类型的基本操作
1
简单的操作
3
Series类似ndarray类型的操作
3
Series类似python字典类型的操作
4
Series类型的对齐操作
5
Series类型的name属性
6
Series类型的修改


一、Series概述

Series是由一组数据及与之相关的数据索引组成 
例子:
import pandas as pd

a = pd.Series([9,8,7,6]) #自动索引
print(a)
1
2
3
4

运行结果: 

0 9 

1 8 

2 7 

3 6 

dtype: int64
import pandas as pd

b = pd.Series([9,8,7,6],index=['a','b','c','d']) #自定义索引
print(b)
1
2
3
4

运行结果: 

a 9 

b 8 

c 7 

d 6 

dtype: int64


二、创建Series类型的方法

Series类型可由如下类型创建:python列表、标量值、python字典、ndarray、其他函数


2.1 从标量值创建

import pandas as pd

a = pd.Series(25,index=['a','b','c','d'])
print(a)
1
2
3
4

运行结果: 

a 25 

b 25 

c 25 

d 25 

dtype: int64


2.2 从字典类型创建

例子1:
import pandas as pd

b = pd.Series({'a':9,'b':8,'c':7})
print(b)
1
2
3
4

运行结果: 

a 9 

b 8 

c 7 

dtype: int64 

例子2:
import pandas as pd

c = pd.Series({'a':9,'b':8,'c':7},index=['c','a','b','d'])
print(c)
1
2
3
4

运行结果: 

c 7.0 

a 9.0 

b 8.0 

d NaN 

dtype: float64


2.3 从ndarray类型创建

import pandas as pd
import numpy as np

d = pd.Series(np.arange(5))
e = pd.Series(np.arange(5),index = np.arange(9,4,-1))
print(d)
print(e)
1
2
3
4
5
6
7

运行结果: 

0 0 

1 1 

2 2 

3 3 

4 4 

dtype: int32

9 0 

8 1 

7 2 

6 3 

5 4 

dtype: int32


三、Series类型的基本操作


3.1 简单的操作

Series类型包括index和values两部分
import pandas as pd

g = pd.Series([9,8,7,6],['a','b','c','d'])

g
Out[16]:
a    9
b    8
c    7
d    6

g.index
Out[18]: Index(['a', 'b', 'c', 'd'], dtype='object')

g.values
Out[19]: array([9, 8, 7, 6], dtype=int64)

g['b']
Out[20]: 8

g[1]
Out[21]: 8
dtype: int64

g[['c','d',0]]  #自定义索引和自动索引不能混合使用
Out[24]:
c    7.0
d    6.0
0    NaN
dtype: float64

g[['c','d','a']]
Out[25]:
c    7
d    6
a    9
dtype: int64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37


3.3 Series类似ndarray类型的操作

import pandas as pd

m = pd.Series([9,8,7,6],['a','b','c','d'])

m
Out[32]:
a    9
b    8
c    7
d    6
dtype: int64

m[3]
Out[33]: 6

m[:3]
Out[34]:
a    9
b    8
c    7
dtype: int64

m[m>m.median()]
Out[35]:
a    9
b    8
dtype: int64

np.exp(m)
Out[36]:
a    8103.083928
b    2980.957987
c    1096.633158
d     403.428793
dtype: float64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35


3.3 Series类似python字典类型的操作

import pandas as pd

h = pd.Series([9,8,7,6],['a','b','c','d'])

h['b']
Out[27]: 8

'c' in h  #保留字in只会判断自定义索引
Out[28]: True

0 in h
Out[29]: False

b.get('f',100)  #若存在,就返回‘f’对应的值,若不存在,就返回100
Out[30]: 100
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16


3.4 Series类型的对齐操作

Series在运算中回自动对齐不同索引的数据
import pandas as pd

p = pd.Series([9,8,7,6],['a','b','c','d'])
q = pd.Series([1,2,3],['c','b','e'])

p+q
Out[39]:
a     NaN
b    10.0
c     8.0
d     NaN
e     NaN
dtype: float64
1
2
3
4
5
6
7
8
9
10
11
12
13
14


3.5 Series类型的name属性

Series对象和索引都可以都一个名字,存储在属性.name中
import pandas as pd

s = pd.Series([9,8,7,6],['a','b','c','d'])

s
Out[42]:
a    9
b    8
c    7
d    6
dtype: int64

s.name

s.name='Series对象'
s.index.name='索引列'

s
Out[46]:
索引列
a    9
b    8
c    7
d    6
Name: Series对象, dtype: int64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26


3.6 Series类型的修改

import pandas as pd

t = pd.Series([9,8,7,6],['a','b','c','d'])

t['a']=15
t.name = 'Series'

t
Out[50]:
a    15
b     8
c     7
d     6
Name: Series, dtype: int64

t.name='New Series'
t['b','c']=20

t
Out[53]:
a    15
b    20
c    20
d     6
Name: New Series, dtype: int64
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
注1:Series是一维带标签数组
注2:Series基本操作类似ndarray和字典,根据索引对齐
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: