1.3 Pandas 常见数据结构
1) 通过pandas.Series创建Series数据结构:
pandas.Series(data,index,dtype,name)
data:list,array,或dict ;
index: 索引(必须与数据同长度) ;
name: 对象名称
s = np.array([1,2,3,4,3,2,1,2,2,4,6,7,2,4,8,4,5])
s
array([1, 2, 3, 4, 3, 2, 1, 2, 2, 4, 6, 7, 2, 4, 8, 4, 5])
np.where(s>3,s,-1)
array([-1, -1, -1, 4, -1, -1, -1, -1, -1, 4, 6, 7, -1, 4, 8, 4, 5])
np.extract(s>3,s)
array([4, 4, 6, 7, 4, 8, 4, 5])
series1 = pd.Series([2.8,3.1,8.99,8.58,5.18])
type(series1)
pandas.core.series.Series
本节正文:
import pandas as pd
import numpy as np
series1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
series2 = pd.Series([2.8,3.01,8.99,8.59,5.18],index=['a','b','c','d','e'],name = '这是一个Series')
series3 = pd.Series([2.8,3.01,8.99,8.59,5.18],index=['a','b','c','d','e'])
series4 = pd.Series({'上海':2.8,'北京':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
所以,字典格式时,字典的键就成为行索引的名称,字典的值成为Series的值。
series4
上海 2.80
北京 3.01
广东 8.99
江苏 8.59
浙江 5.18
dtype: float64
series的切片和索引方式如下:
#通过位置访问,左取右不取:
series4[0:3]
上海 2.80
北京 3.01
广东 8.99
dtype: float64
#通过标签访问,没有所谓左取右不取:
series4['北京':'江苏']
series的方法、属性:
series1.values #输出的是值
array([2.8 , 3.1 , 8.99, 8.58, 5.18])
series4.index #输出的是索引
Index(['上海', '北京', '广东', '江苏', '浙江'], dtype='object')
series4.dtypes #输出的是数据类型
dtype('float64')