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