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)
记录学习的点点滴滴