pandas删除行列或增加行列

数据展示

1 dic = {'id':[1,2,3,4,5,6,2],'dishes_name':['蒙古烤羊腿','大蒜苋菜',
2         '蒜香包','干锅田鸡','大蒜苋菜','芝麻烤紫菜','大蒜苋菜'],
3        'amount':[48,20,32,56,20,32,20]}
4 data = pd.DataFrame(dic,columns=['id','dishes_name','amount'])
5 data

①删除行

  • 删除某列指定的数据
1 #删除某列指定的数据
2 ind=data['dishes_name']=='大蒜苋菜'
3 data.drop(data[ind].index)

  • 删除['dishes_name','amount']两列重复值的行
1 #删除['dishes_name','amount']两列重复值的行
2 ind1 = data.drop_duplicates(subset=['dishes_name','amount'])
3 ind1

  • 不指定subset时,默认删除重复的样本数据
1 #不指定subset时,默认删除重复的样本数据
2 data.drop_duplicates()

②删除空值行 : data.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

axis=0:删除的是行,默认为0;

how:对数据列的判断,'any'是指有空值就删除,‘all’是当所有列在该行为空值是就删除

subset:指定判断的列

inplace:指处理数据后是否原数据也改变

1 dic = {'id':[1,2,3,4],'dishes_name':['蒙古烤羊腿','大蒜苋菜',
2         '蒜香包','大蒜苋菜'],
3        'amount':[48,20,32,pd.NaT]}
4 data = pd.DataFrame(dic,columns=['id','dishes_name','amount'])
5 data

  •  删除指定['dishes_name','amount']的列有空值的行
1 data.dropna(axis=0,subset=['dishes_name','amount'],how='any')

  •  删除指定['dishes_name','amount']的列都有空值的行
1 data.dropna(axis=0,subset=['dishes_name','amount'],how='all')

②删除列

  • del只能删除一列数据,且改变原数据(不建议使用)
1 del data['amount']

  •  drop可以删除多列,但一定要指定axis=1,否则会报错
1 data.drop(['amount','dishes_name'],axis=1)

③添加行数据

数据展示

1 dic = {'id':[1,2,3,4,5,6,2],'dishes_name':['蒙古烤羊腿','大蒜苋菜',
2         '蒜香包','干锅田鸡','大蒜苋菜','芝麻烤紫菜','大蒜苋菜'],
3        'amount':[48,20,32,56,20,32,20]}
4 data = pd.DataFrame(dic,columns=['id','dishes_name','amount'])
5 data

  •  添加ann_columns列为空值
1 import numpy as np
2 
3 data['ann_columns'] = np.nan
4 data

  •  添加行为空
1 data.loc[99,:]=np.nan
2 data

posted on 2020-03-12 16:04  LiErRui  阅读(362)  评论(0)    收藏  举报

导航