一、插入行
1.可以通过reindex来重新整体实现删除和插入
2.索引插入一个值,再reindex,更新索引,再赋值。
frame=DataFrame(np.random.randn(3,3),index=list('abc'),columns=['ohio','texas','california'])
frame
x=frame.index.insert(2,'f')###索引里插入一条真的很麻烦,还要把数据重新做index一下
frame2=frame.reindex(x)
frame2.loc['f',:]=[1,2,3]
frame2
3.直接插入再末尾的行
frame.loc[0]=1### 插入行
frame
二、插入列
1.直接插在末尾
frame['shanghai']=1
2.对columns插入,再reindex
cols=list(frame)
cols=frame.columns.insert(0,'jiangsu')
frame.reindex(columns=cols,fill_value=2)
3.改变列的序列,将某列插入特定位置
使用POP函数
cols=list(frame)#这样就可以得到列名
cols.insert(0,cols.pop(cols.index('shanghai')))##利用pop 函数返回删除的内容,实际上还是在索引上操作,index直接不能用pop函数
frame=frame.reindex(columns=cols)
frame
4.两个表格时间的index是可以求集合的
df1=DataFrame(np.arange(9).reshape((3,3)),
columns=list('bcd'),
index=['zhejiang','shanghai','anhui'])
df2=DataFrame(np.arange(12).reshape((4,3)),
columns=list('abc'),
index=['zhejiang','shanghai','jiansu','shangdong'])
df1.add(df2,fill_value=0)#这样交集之外还是存在着空值啊
new_index=df1.index.union(df2.index)
new_columns=df1.columns.union(df2.columns)
df1=df1.reindex(index=new_index,columns=new_columns,fill_value=0)
df2=df2.reindex(index=new_index,columns=new_columns,fill_value=0)
df1.add(df2)
三、删除行
#drop()
frame2=frame.copy()
frame2.drop(index=2,axis=0)
#del 删除索引中的元素,在重新索引
new=frame2.index.delete(3)
frame2.reindex(index=new)
四、删除列
#drop()
frame2.drop(columns='shanghai',index=1,inplace=False)
#del
del frame2['shanghai'] # 直接原表删除
#del 删除索引中的元素,在重新索引
new=frame2.columns.delete('shanghai')
frame2.reindex(coulumns=new)
五、同时删除行和列
frame2.drop(index=0,columns='shanghai')
#同样可以用reindex 方法,同时设置index和columns
六、删除有空值的行或列
frame2['shangdong']=np.nan
frame2.dropna(how='all',axis=0)