上一节学习了Dataframe数据的显示,本节学习Dataframe数据的更新、插入和删除。仍以这个数据表为例:
一、更新(选择相应的数据à赋值à更新原表数据)
1、frame['height'] = frame['height'] +0.01 ----给每个人的身高加0.012、 frame[1:2] ['name']= '李四方' ----将第二行的姓名改为‘李四方’;这一方法会有警告,因为该数据进行了2次选择,第一次先选择了行,第二次选择了列,有可能会不成功,最好用下面的方法;frame.loc[1,'name'] = '李四方' ---一步到位选择数据
3、带条件的修改:frame.loc[frame['height']>1.80,'age'] = frame.loc[frame['height']>1.80,'age']+1---将所有身高大于1.80的记录的年龄都增加一岁
二、插入
1、插入行:先将一行数据赋给frame1,再将frame1追加到原frame后data1 = { 'ID':['008'],
'name':['方圆'],
'gender':[False],
'age':[21],
'heitht':[1.69]
}
frame1=pd.DataFrame(data1)
frame.append(frame1) ----注意这一方法会将frame1的索引号0一并追加过来
frame.append(frame1,ignore_index=True) ---这一方法会忽略原来的索引,其索引会自动增加
2、插入列:
1)在最后插入列:frame['class']=['c1','c2','a1','b2','c1','c2','c2']
2)在中间插入列:frame.insert(0,'class',['c1','c2','a1','b2','c1','c2','c2'])---表示在第1列的前面插入class列
3)带条件的选择与插入frame= frame.append(frame.loc[frame['age']>17]) ---将frame表中所有年龄大于17的记录找到,并再次插入到frame列表的最后
三、删除
用到一个知识点:frame内置两个属性,frame.index和frame.columns,这两个属性会返回frame的索引和列名的信息。
1、 行删除
方法1:frame= frame.drop(1) ---删除索引为1的那一行frame= frame.drop([1,2])等价于frame= frame.drop(index=[1,2])--–删除多行(索引1、2两行)方法2:frame= frame.drop(1,axis=0) --- axis=0指定要删除的是行
方法3:frame= frame.drop(index=(frame.loc[(frame['gender']==True)].index))---删除符合条件的记录(先找到符合条件的frame: frame.loc[(frame['gender']==True)],然后再取index
2、 列删除
方法1:frame= frame.drop(columns = 'name')方法2:frame= frame.drop('name',axis=1) ---axis=1指定要删除的是列