import numpy as np import pandas as pd
dates = pd.date_range('20170101',periods=6)
df1 = pd.Dataframe(np.arange(24).reshape((6,4)),
index=dates,columns=['A','B','C','D'])
df1
df1['A'] #提取A这个列,是series结构 #将Dataframe的列获取为一个Series
df1.A #也是获取一个列
df1[0:2] #取0-1行
df1['20170102':'20170104'] #也是取行的一个操作
#通过索引选择数据 df1.loc['20170102']
df1.loc['20170102',['A','C']] #提取20170102这一行中的A和C两列
df1.loc[:,['A','B']] #:代表提取所有的行中的A和B两列
#通过位置选择数据 df1.iloc[2] #提取第二行
df1.iloc[1:3,2:4] #提取1到2行,2到3列
df1.iloc[[1,2,4],[1,3]] #提取1,2,4行,1,3列
#混合标签位置选择
#df1.ix[2:4,['A','C']]
df1.iloc[:df1.index.get_loc('20170101')+2,2:4]
#提取1、2行,2、3列
df1.A > 6 #判断A这一行是否大于6
df1[df1.A>6]
pandas赋值
dates = np.arange(20170101,20170107)
df1 = pd.Dataframe(np.arange(24).reshape((6,4)),index=dates,
columns=['A','B','C','D'])
df1
df1.iloc[2,2] df1.iloc[2,2] = 100 #对第二行第二列的数重新赋值 df1
df1.loc[20170102,'B'] = 200 #利用标签的方式进行赋值 df1
df1[df1.A>10] = 0 #将A这一列大于10的值都返回为0 df1
df1.A[df1.A==0] = 1 #将A这一列等于0的都赋值为1 df1
df1['E'] = 10 #插入E的这一列,赋值为10 df1
df1['F'] = pd.Series([1,2,3,4,5,6],index=dates) df1 #插入F这一列
df1.loc[20170107,['A','B','C']] = [1,2,3] #添加行 df1
s1 = pd.Series([1,2,3,4,5,6],index=['A','B','C','D','E','F']) s1.name = 'S1' df2 = df1.append(s1) df2 #添加行
df1.insert(1,'G',df2['E']) #在第一列插入索引为G的df2中的E列 df1
g = df1.pop('G') #将G这一列弹出,保存在g中
df1.insert(6,'G',g)#在第六列后插入
df1
del df1['G'] #删除G列 df1
df2 = df1.drop(['A','B'],axis=1)#删除A,B列 df2
df2 = df1.drop([20170101,20170102],axis=0)#删除20170101,20170102行 df2



