常用的两个数据结构:Serious和DataFrame
Serious:表示一维数组
#! /user/bin/env python
#encoding=utf-8
__author__ = 'chw'
import pandas as pd
from pandas import Series,DataFrame
print Series([1,2,4,5])
print Series([1,2,5,6],index=['q','w','s','f'])
obj=Series([1,2,5,6],index=['q','w','s','f'])
A={'a':1,'b':2,'q':7}
print obj.index,obj.get('q'),obj.values,obj[obj>4],dict(obj)
print Series(A)
print pd.isnull(obj) ,obj+Series(A)
结果:
0 1
1 2
2 4
3 5
dtype: int64
q 1
w 2
s 5
f 6
dtype: int64
Index([u'q', u'w', u's', u'f'], dtype='object') 1 [1 2 5 6] s 5
f 6
dtype: int64 {'q': 1, 's': 5, 'w': 2, 'f': 6}
a 1
b 2
q 7
dtype: int64
q False
w False
s False
f False
dtype: bool a NaN
b NaN
f NaN
q 8.0
s NaN
w NaN
dtype: float64
DataFrame:表示的表格型结构,它含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。其既有行索引也有列索引,它可以看做由Series组成的字典(共用同一个索引)。DataFrame中面向行和面向列的操作基本上是平衡的。
数据类型:连续嵌套的字典
{‘a’:{’s’:1,’d’:2},’b’:{‘e’:3,’r’:4}}
外层字典的键为列,比如’a’,’b’
内层字典的键为行,比如’s’,’d’,’e”r’
#! /user/bin/env python
#encoding=utf-8
__author__ = 'chw'
import pandas as pd
from pandas import Series,DataFrame
data={'state':['Ohio','Ohio','Ohio','Nevada','Nevada'],
'year':[2000,2001,2002,2001,2002],
'pop':[1.5,1.7,1.8,1.9,2.1]}
# frame=DataFrame(data)
# print frame,frame.get('pop')
data1={'a':['1','2'],'b':[201,202],'c':['q','w']}
frame1=DataFrame(data1)
print DataFrame(data1,columns=['b','c','a'],index=['a','b'])
print frame1
print frame1.ix[1]
结果:
b c a
a 201 q 1
b 202 w 2
a b c
0 1 201 q
1 2 202 w
a 2
b 202
c w
Name: 1, dtype: object
查看数据
.head(n):前n行数据
.tail(n):后n行数据
.index:表示索引
.columns:表示属性名
.values:表示数据
.T:zhuanzi
.sort():排序
.describe:表示快速统计汇总
选择
虽然标准的Python/Numpy的选择和设置表达式都能够直接派上用场,但是作为工程使用的代码,我们推荐使用经过优化的pandas数据访问方式: .at, .iat, .loc, .iloc 和 .ix
合并
Concat
join
append:将一行连接到一个DataFrame上
分组
对于”group by”操作,我们通常是指以下一个或多个操作步骤:
l (Splitting)按照一些规则将数据分为不同的组;
l (Applying)对于每组数据分别执行一个函数;
l (Combining)将结果组合到一个数据结构中;