python :pandas

Pandas知识点总结


Series

Seires类似一维数组,由数组及与之相关的标签组成。

Series的创建:

val=Series(['blue','red','yellow'],index=['a','b','c'])

val2=Series(np.arange(5),index=['a','b','c','d','e'])

//获取数组部分信息:

1.直接根据索引获取

print(val['b])

print(val2[[1,3]])

2.根据条件获取

print(val2[val2<3])

3.闭合切片

print(val['b':'c'])


DataFrame

DataFrame是表格型数据。

创建DataFrame:

import pandas as pd

import numpy as np

data={'state':['ohio','ohio','nevada'],'year':[2001,2003,3004],'pop':[1.3,1.4,1.5]}  //设置一个数据集

df=pd.DataFrame(data,columns=['state','year','pop'],index=['one','two','three'])  //创建DF

data2=pd.DataFrame(np.arange(9).reshape((3,3)),index=['a','b','c'],columns=['num1','num2','num3'])

print(df)

pop  state  year

0  1.3    ohio  2001

1  1.4    ohio  2003

2  1.5  nevada  3004

//获取部分信息的方法

1.根据索引提取

print(df.year) print(df['year'])

print(df.ix['three'])     print(df[2])      //获取横行的方法

print(data2[:2])/   //2是指第2行

print(data.ix('a',['num1','num2']))

2.根据条件提取

print(data.num2>2)  print(data2>5)  //这样输出的是True或False

若要输出数值,则要写print(data[data.num2>2])

//修改

df['year']=2005

df.year=2005

df.year=np.arange(3)

//利用Series修改

val=Series([2003,2004],index=['two','three'])

df.year=val

//赋值于新列

df.economy=['105','108','12']

//重新指定索引

索引是不可以修改的,但可以通过重新引用重新制定索引

obj3=Series(['blue','purple','yellow'],index=[0,2,4])

obj4=obj3.index(range(6),method='ffill')

//删掉某一列或行

data=pd.DataFrame(np.arange(16).reshape((4,4)),index=['onio','colorado','utah','new york'],columns=['one','two','three','four'])

data.drop(['onio'])

data.drop('two',axis=1)  //axis=1代表列

//相互运算

df之间使可以想加或者想见的,但是行数或者列数会相对于原来的发生变化

data=pd.DataFrame(np.arange(9).reshape((3,3)),index=list('123'),columns=['a','b','c'])

a  b  c

1  0  1  2

2  3  4  5

3  6  7  8

data2=pd.DataFrame(np.arange(16).reshape((4,4)),index=list('1234'),columns=['a','b','c','d'])

a  b  c  d

1  0  1  2  3

2  4  5  6  7

3  8  9  10  11

4  12  13  14  15

data+data2

a    b    c  d

1  0.0  2.0  4.0 NaN

2  7.0  9.0  11.0 NaN

3  14.0  16.0  18.0 NaN

4  NaN  NaN  NaN NaN

DF数据类型可以和Series相加

//匿名函数条件的应用

data6=pd.DataFrame(np.arange(16).reshape((4,4)),columns=list('abcd'),index=list('1234'))

a  b  c  d

1  0  1  2  3

2  4  5  6  7

3  8  9  10  11

4  12  13  14  15

def f(x):

      return Series([x.min(),x.max()],index=['min','max'])

print(data6.apply(f,axis=1))

format=lambda x: '%.2f'%x

print(data6.applymap(_format))

//排序

1.按索引排序

print(data6.sort_index())

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容