pandas删除数据、空缺值处理、重复值处理

本文介绍了使用Pandas库进行数据处理的一些基本操作,包括删除指定行或列、处理空缺值以及处理重复值。通过示例代码展示了drop方法的不同用法,如何检查和处理NaN值,以及如何根据条件筛选数据。同时,还演示了如何删除重复的行和列,确保数据的准确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.删除指定的行或列
t1 = pd.DataFrame(np.arange(12).reshape((3,4)).astype("int"), index = list("abc"), columns = list("ABCD"))

#若不指定轴则 默认删除行
t1.drop('a', inplace = False)
#指定axis=1 则删除列
t1.drop('A', axis = 1, inplace = False)
t1.drop(['A', 'B'], axis = 1, inplace = False)
2.空缺值处理
#缺失数据处理
t1 = pd.DataFrame(np.arange(12).reshape((3,4)).astype("int"), index = list("abc"), columns = list("ABCD"))
t1.iloc[0,0] = np.nan

#判断是否为nan 返回一个值为布尔类型的DataFrame
pd.isnull(t1) 
pd.notnull(t1)

t1[pd.notnull(t1['A'])]

#去除空缺值 any代表行/列只要出现nan就删除 all代表全部为nan时才删除
t1.dropna(axis = 0, how = "any", inplace =False)
t1.dropna(axis = 0, how = "all", inplace = False)

#空缺值填充
t1.fillna(t1.mean())
3.重复值处理
df= pd.DataFrame({'k1': [ 's1']* 3 + ['s2']* 5,'k2' : [1, 2, 3, 4, 5, 6, 4,4]})
print(df)

#判断是否存在重复值 返回一列布尔值
df.duplicated()
df.duplicated('k2')
df.duplicated(['k1', 'k2'])

df.drop_duplicates(inplace = False)
df.drop_duplicates('k2',inplace = False)
df.drop_duplicates(['k1', 'k2'],inplace = False)
### 如何在乳腺癌肿瘤预测数据集中处理重复值 #### 使用Pandas库检测并删除重复项 为了确保数据集的质量,在构建任何机器学习模型之前,应当先清理可能存在的重复记录。对于来源于威斯康辛州的乳腺癌数据集而言,可以借助`pandas`库来完成这项工作[^1]。 ```python import pandas as pd from sklearn.datasets import load_breast_cancer # 加载sklearn自带的乳腺癌数据集 data = load_breast_cancer() df = pd.DataFrame(data.data, columns=data.feature_names) # 添加目标变量列 df['target'] = data.target # 查看是否有完全相同的行(即所有特征都相同) print(f"原始数据形状: {df.shape}") duplicates_df = df[df.duplicated()] if not duplicates_df.empty: print(f"发现{len(duplicates_df)}条重复记录") else: print("未发现重复记录") # 删除重复行,默认保留第一次出现的数据 cleaned_df = df.drop_duplicates() # 输出清洗后的数据大小 print(f"去重后数据形状: {cleaned_df.shape}") # 如果需要考虑部分字段组合是否唯一,则可以通过subset参数指定要检查哪些列是否存在重复情况 partial_cleaned_df = df.drop_duplicates(subset=['mean radius', 'mean texture']) # 这里仅作为例子选择了两列 ``` 上述代码片段展示了如何加载数据以及通过调用`drop_duplicates()`方法去除整个数据框内的冗余观测得注意的是,当面对更复杂的情况时,比如某些特定属性之间的组合不应该有重复实例的情况下,还可以进一步定制化地设置`subset`参数来进行针对性更强的数据净化操作[^4]。 此外,考虑到实际应用中可能会遇到带有缺失或异常编码等问题的数据源,建议在此之前还应执行其他必要的预处理步骤,如填补空缺、转换类别型变量等,从而获得更加健壮可靠的训练样本集合[^2]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值