pandas中数据的删除

数据的删除

#删除空值所在的行
df = df.dropna(axis = 0,subset = ['测温探头编码'])#删除空值的行,不加subset就是删除所有的行或列

#del
#使用del, 一次只能删除一列,不能一次删除多列
import pandas as pd
  
data = pd.read_excel(r'销售数据.xlsx')
print(data)
  
# 使用del, 一次只能删除一列,不能一次删除多列
  
# 只能使用 del df['备注'], 不能使用 del df[['备注', '客户']]
  
del data['备注']
print(data)


#drop函数的参数及其用法
#参数
#axis:axis为0时表示删除行,axis为1时表示删除列,默认删除行

#errors:
#errors='raise'会让程序在labels接收到没有的行名或者列名时抛出错误导致程序停止运行,errors='ignore'会忽略没有的行名或者列名,只对存在的行名或者列名进行操作,没有指定的话也是默认‘errors='raise'’

#levels
接受int或者索引名,代表标签所在级别,默认为None

#inplace
接受布尔型,代表操作是否对原数据生效,


#drop,默认(drop = False),当我们指定(drop = True)时,则不会保留原来的index,会直接使用重置后的索引
drop = True,


#举例子
cities = pd.DataFrame(np.random.randn(5, 5),
     index=['a', 'b', 'c', 'd', 'e'],
     columns=['shenzhen', 'guangzhou', 'beijing', 'nanjing', 'haerbin'])

#删除a行,
df1 = cities.drop(labels='a')

#删除非连续的多行,需要注意的是labels指的是标签的名称,无int无列表不能做切片操作
df1 = cities.drop(labels=['a',"c"])



# 使用drop
data = data.drop(labels = ['备注', '客户'], axis=1, inplace=False)  # axis=1 表示删除列,['备注', '客户'] 要删除的col的列表,可一次删除多列    # inplace=True, 直接从内部删除
#当然参数labels可有可无,

#在删除空值的时候
df.dropna(inplace=True, subset=['second name', 'age']) #默认的是行
#当然subset也是可以省略的

#应该牢记的是drop此处的所删除的是行标签与列标签,与loc类似而与位置无关,反正弄个位置参数必须报错。

#如果要删除依靠位置的多行,类似于iloc
data.drop(cities.columns[0:3], axis=1, inplace=False)


    
  
posted @ 2023-03-30 16:21  小杨的冥想课  阅读(69)  评论(0编辑  收藏  举报