《python数据分析》5.1

  这几天事情太多了,好几个项目催着要功能,还有测试版本的问题修复,一个头不知道几个大。想了想列了一下需要做哪些事情,排排优先级,先把优先级高的简单的

先处理了,每天写一个清单,处理完一件就打个勾,打勾的感觉挺爽的,推荐一本书《清单革命》,有空可以大致翻一下。

 

5.1 pandas数据结构

 

两种主要的数据结构:Series和DataFrame

Series 是一维的,类似字典,它的索引就是它的键值,可以将字典输入创建一个Series

sdata = {'Ohio':3,'Texas':4,'Oreng':5,'Utah':6}

sdata
Out[3]: {'Ohio': 3, 'Texas': 4, 'Oreng': 5, 'Utah': 6}

ob = pd.Series(sdata)

ob
Out[5]: 
Ohio     3
Texas    4
Oreng    5
Utah     6
dtype: int64

 

可以看到,键值成为了左边的索引值

当然也可以直接用数组输入生成Series,那索引值默认是0,1,2...;索引值可以在生成时赋值的

ob = pd.Series([4,-1,3,5],index=['a','b','c','d'])

ob
Out[31]: 
a    4
b   -1
c    3
d    5
dtype: int64

 可以采取像字典方式,取键值来取所对应的值。

 

当用列表输入生成Series时,index的长度必须和列表长度一样;用字典输入生成Series时,index长度可以和字典不一样长

5.1.2 DataFrame

DataFrame是二维的,当然里面可以嵌套,看上去是多维的。

由长度相同的列组成,就像是Excel表格一样,每一列代表一类数据

可以看成是Series的数组

data = {'state':['Ohio','Ohio','Nevada'],'year':[2001,2001,2002],'pop':[1.5,1.7,3.6]}

frame = pd.DataFrame(data)

frame
Out[19]: 
    state  year  pop
0    Ohio  2001  1.5
1    Ohio  2001  1.7
2  Nevada  2002  3.6

  可以看到左边是有索引的。

取单元值是用loc函数

frame.loc[1]
Out[43]: 
state    Ohio
year     2001
pop       1.7
Name: 1, dtype: object

 选取列

frame['state']
Out[44]: 
0      Ohio
1      Ohio
2    Nevada
Name: state, dtype: object

  DataFrame 可以用values属性把数据以二维ndarray形式返回

frame.values
Out[45]: 
array([['Ohio', 2001, 1.5],
       ['Ohio', 2001, 1.7],
       ['Nevada', 2002, 3.6]], dtype=object)

  

posted on 2021-03-29 22:08    阅读(67)  评论(0编辑  收藏  举报

导航