创建函数
obj = pandas.Dataframe()#创建函数
'''创建DataFrema''' import pandas as pd #定义一个字典 dic = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002,2003],'pop':[1.5,1.7,3.6,2.4,2.9,3.2]} #通过DataFrame()创建对象 frame = pd.DataFrame(dic) print('通过字典创建一个没有传入指定index的DataFrame对象:') print(frame)
只不过通过二维数组创建的元素都是相同类型的了
如果不重新传入索引columns,index,则都从0~n赋值
import pandas as pd import numpy as np arr = np.arange(24).reshape(6,4) frame = pd.DataFrame(arr,columns=['a','b','c','d'],index=['one','two','three','four','five','six']) print(frame)
修改frame的列名
实际上是根据columns传入的值去字典里索引
'''指定列名''' frame2 = pd.DataFrame(dic,columns=['pop','year','state']) print('修改完列名的DataFrame') print(frame2)
当指定的列名包含不在字典key中,索引不到,
创建新的列,值设为NaN(产生缺失值)
'''指定列名不全在key中''' frame3 = pd.DataFrame(dic,columns=['pop','year','state','debt'],index=['one','two','three','four','five','six']) print('指定完列名、行索引的DataFrame') print(frame3)
print(frame3.columns)
print(frame3.index)
print(frame3.values)
返回一个Series
print('yera列的Series') print(frame.year)
查看指定列类型:
print('year列的数据类型') print(type(frame.year))
#DataFrema[column] print('stste列的Series') print(frame['state'])
在Sreies中索引行我们用Series.[index],但在DataFrema是这个方式已经被索引列占用,所以索引列,我们用另外的方式
行元素的数据类型也是一个Series
import pandas as pd dic = {'state':['Ohio','Ohio','Ohio','Nevada','Nevada','Nevada'],'year':[2000,2001,2002,2001,2002,2003],'pop':[1.5,1.7,3.6,2.4,2.9,3.2]} frame = pd.DataFrame(dic,index=['one','two','three','four','five','six']) print('three行的Series') print(frame.loc['three']) print('three行的数据类型:',type(frame.loc['three']))
行号从0开始
print('第0行的数据Series:') print(frame.iloc[0])
更改行的位置
'''修改行索引。列索引''' import pandas as pd import numpy as np arr = np.arange(24).reshape(6,4) frame = pd.DataFrame(arr) print('修改前') print(frame) #修改行索引 frame2 = frame.reindex([4,5,2,1,3,0]) print('修改后') print(frame2)
修改索引
#修改索引名 import pandas as pd import numpy as np arr = np.arange(24).reshape(6,4) frame = pd.DataFrame(arr) #修改索引名 frame.columns=['a','b','c','d'] frame.index=['one','two','three','four','five','six'] #修改索引名后 print(frame
指定:
axis = 1 表示列
默认 表示行
data = DataFrame.drop(列名,axis = 1) data = DataFrame.drop(行名)