python数据处理工具 -- pandas(序列与数据框的构造)

   Pandas模块的核心操做对象就是对序列(Series)和数据框(Dataframe)。序列能够理解为数据集中的一个字段,数据框是值包含至少两个字段(或序列)数据库

的数据集。数组

 

构造序列函数

1.经过同质的列表或元组构建code

2.经过字典构建对象

3.经过numpy中的一维数组构建索引

4.经过数据框Dataframe中的某一列构建数学

例如:pandas

import pandas as pd
import numpy as np
gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
gdp2 = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
gdp3 = pd.Series(np.array((2.8,3.01,8.99,8.59,5.18)))
print(gdp1)
print(gdp2)
print(gdp3)import

out:变量

0    2.80
1    3.01
2    8.99
3    8.59
4    5.18
dtype: float64
北京    2.80
上海    3.01
广东    8.99
江苏    8.59
浙江    5.18
dtype: float64
0    2.80
1    3.01
2    8.99
3    8.59
4    5.18
dtype: float64

如上所示:无论是列表,元组,仍是一维数组,构造的序列结果样式会产生两列,第一列属于序列的索引列(也能够理解为行号)

,自动从0开始,第二列才是序列的实际值。经过字典构造的序列就是第二个打印样式,仍然包含两列,所不一样的是第一列再也不是行号,而是具体的行名称(label),对应到字典中的键,第二列是序列的实际值,对应到字典的值;

 

序列与一维数组有极高的类似性,获取一维数组元素的全部索引方法均可以用到序列上,并且数组的数学和统计函数也一样能够用到序列上。另外序列会有更多的其余处理方法,以下:

import pandas as pd
import numpy as np
gdp1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
gdp2 = pd.Series({'北京':2.8,'上海':3.01,'广东':8.99,'江苏':8.59,'浙江':5.18})
gdp3 = pd.Series(np.array((2.8,3.01,8.99,8.59,5.18)))
# print(gdp1)
# print(gdp2)
# print(gdp3)
print('行号风格的序列: \n ',gdp1[[0,3,4]]) #取出gdp1中的第1 4 5个元素
print('行名称风格的序列: \n',gdp2[[0,3,4]]) #取出gdp2中第 1 4 5个元素   取出的是字典的键值对
print('行名称风格的序列:\n',gdp2[['上海','江苏','浙江']])     # 取出的是键值对
print('经过numpy函数:\n',np.log(gdp1))     #能够用函数的方式直接取出相应对应的结果的值,经过numpy的方式须要经过其索引
print('经过numpy函数:\n',np.mean(gdp1))     
print('经过序列的方法:\n',gdp1.mean())     #能够看出序列也是支持方法的使用的

out:

行号风格的序列: 
  0    2.80
3    8.59
4    5.18
dtype: float64
行名称风格的序列: 
 北京    2.80
江苏    8.59
浙江    5.18
dtype: float64
行名称风格的序列:
 上海    3.01
江苏    8.59
浙江    5.18
dtype: float64
经过numpy函数:
 0    1.029619
1    1.101940
2    2.196113
3    2.150599
4    1.644805
dtype: float64
经过numpy函数:
 5.714
经过序列的方法:
 5.714

针对上面的代码须要说明几点,若是序列是行名称风格,既可使用位置(行号)索引,又可使用标签(行名称)索引;若是须要对序列进行数序函数的运算,通常首选numpy模块,由于pandas模块在这方面比较缺少;若是是对序列作统计运算,既可使numpy模块中的函数,也可使用序列中的方法。通常首选

序列方法,由于序列方法更加丰富一些,如计算序列的偏度,峰度,而Numpy是没有这样的函数的。

 

构造数据框

   数据实质上就是一个数据集,数据集的行表明每一条观测,数据集的列则表明各个变量。在一个数据框中能够存放不一样数据类型的序列,如整数型,浮点型,字符型和日期时间型,而数组和序列则没有这样的优点,由于他们只能存放同质数据。构造一个数据库能够应用以下方式:

1.经过嵌套的列表或元组构造

2.经过字典构造

3.经过二维数组构造

4.经过外部数据的读取构造。

示例:

 

import pandas as pd
import numpy as np
df1 = pd.DataFrame([['张三',23,'男'],['李四',27,'女'],['王五',26,'女']])
df2 = pd.DataFrame({'姓名':['张三','李四','王五'],'年龄':[23,27,26],'性别':['男','女','女']})
df3 = pd.DataFrame(np.array([['张三',23,'男'],['李四','27','女'],['王五',26,'女']]))
print('嵌套列表构造数据框:\n',df1)
print('字典构造数据框:\n',df2)
print('二维数组构造数据框:\n',df3)

out:

嵌套列表构造数据框:
     0   1  2
0  张三  23  男
1  李四  27  女
2  王五  26  女
字典构造数据框:
    姓名  年龄 性别
0  张三  23  男
1  李四  27  女
2  王五  26  女
二维数组构造数据框:
     0   1  2
0  张三  23  男
1  李四  27  女
2  王五  26  女

构造数据框须要使用到Pandas模块中的DataFrame函数,若是经过嵌套列表或元组构造数据框,则须要将数据框的每一行观测座位嵌套列表或元组的元素;若是经过二维数组构造数据框,则须要将数据框的每一行写入到数组的行中;若是经过字典构造数据框,则字典的键构成数据框的变量名,对应的值构成数据的观测。尽管上面的代码均可以构造数据框,可是讲嵌套列表,元组或二维数组转换为数据框时,数据框是没有具体的变量名的,只有从0到N的列号。因此,若是须要手工构造数据框的话,通常首选字典方法。

 

外部数据的读取

外部数据的读取来构造数据框的内容会比较多,下一篇再来记录...

相关文章
相关标签/搜索