在用python进行数据处理的时候,自带的五种数据类型使用起来显然是有局限性的,python之强大在于各种包,在数据处理中用的最多的就是pandas和numpy。本文章主要介绍pandas的数据结构。
pandas有两种数据结构
series
dataframe
Series
pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False)
是一种带标签的一维数组
参数解释:
data: 数组或者字典
index:一维索引或者数组
copy:是否复制data
变量声明
obj = series([2,9,-10,333]) #通过数组赋值
dict = {'name':John',score':100}
obj_dict = Series(dict)
属性
obj.values #可以用list转化为列表
obj.index #可以用list转化为列表
创建带索引的series:
l = [2,9,-10,333]
index = ['a','b','c','d']
obj = pd.Series(l,index,name='score')
按索引取值:
obj['a'] #返回 4
obj[['c','d']] #返回 [-5,3]
返回的类型仍然为series
对series进行运算:
e = obj[obj<0] #返回e仍然为series
f = obj * 10 #返回的f仍然为series
对series进行修改:
obj['a'] = 10 #将a的值修改为10
obj.index = ['f','b','c','d'] #修改索引
DataFrame
pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)
DataFrame是一种类似表格的二维数据结构
参数解释
data: numpy ndarray,字典或者dataframe
index: 索引或者类似索引
columns: 列名
DataFrame创建
从字典创建
从numpy ndarray创建(二维列表)
DataFrame索引
dic = {'name':['john','dick','lucy'],'sex':['man','man','woman'],'score':[100,80,90]}
index = ['first','second','third']
df = pd.DataFrame(dic,index = index)
DataFrame取值
取出某一列
df_name = df['name'] or df_name = df.name #取出name列
df2 = df[['name','score']] #取出两列
取出某一行
df.ix['first']
df.ix[0]
取出某行某列
df['name']['first']
df.ix['first']['name']
结果都为:john
DataFrame内容修改
df['score'] = 100 #将所有的score修改为100
DataFrame按行遍历
array = df.values #得到一个二维列表,每一行存在一个列表中
for row in array:
print(row)