DataFrame查增改删

DataFrame查增改删

查 Read

类list/ndarray数据访问方式

dates = pd.date_range('20130101',periods=10)
dates
df = pd.DataFrame(np.random.randn(10,4),index=dates,columns=['A','B','C','D'])
df

#索引
df['A']
df.A
df['A']['2013-01-01']#先列后行
df.A['2013-01-01']
df[['A','C']]

下面为Pandas专用的数据访问方式

.loc 通过自定义索引获取数据

#选取某行
df.loc['2013-01-01']

#选取某列
df.loc[:,'A']

#选取特定值
df.loc['2013-01-01','A'] #先行后列

#选取指定的行/列
df.loc[[dates[0],dates[2]],:] #指定行
df.loc[:,['A','B']] #指定列
df.loc[[dates[0],dates[2]],['A','B']]#指定行列

#切片
df.loc['2013-01-01':'2013-01-04',:] #对行切片
df.loc[:,'A':'C'] #对列切片
df.loc['2013-01-01':'2013-01-04','A':'C'] #切片选取连续区块。行,列。左开右闭

.iloc 通过默认索引获取数据

#选取某行
df.iloc[3]

#选取某列
df.iloc[:,2]

#选取特定值:
df.iloc[1,2]

#选取指定的行/列
df.iloc[[1,2,4],:] #指定行
df.iloc[:,[0,2]] #指定列
df.iloc[[1,2,4],[0,2]] #指定行列 ,先行后列

#切片
df.iloc[1:3,:] #对行切片:
df.iloc[:,1:3] #对列切片:
df.iloc[3:5,0:2] #切片选取连续区块。行,列。左开右闭

Boolean索引

#通过某列选择数据:
df[df.A > 0]

#通过where选择数据:
b = df[df > 0]
b
type(b['A']['2013-01-01'])

#通过 isin() 过滤数据:
df2 = df.copy()
df2['E'] = ['one', 'one','two','three','four','three','five','four','three','five']
df2
df2['E'].isin(['one','four'])
df2[df2['E'].isin(['one','four'])]

增 Create

s1 = pd.Series([1,2,3,4,5,6], index=pd.date_range('20130102', periods=6))
s1

#新增一列数据
df2['F'] = s1
df2

改 Update

#更新一列值
df2.loc[:,'D']
df2.loc[:,'D'] = 5
df2

df2.iloc[1,3]
df2.iloc[1,3] = 10.1
df2

#通过where更新
df3 = df.copy()
df3[df3 > 0] = -df3
df3
原文地址:https://www.cnblogs.com/yoyo1216/p/10131739.html