【Educoder数据挖掘实训】冗余值的处理

【Educoder数据挖掘实训】冗余值的处理

开挖

这个题就比较容易了,实训里的要求写的也比较清楚。

主要是讲解了 d r o p _ d u p l i c a t e s drop\_duplicates drop_duplicates函数,该函数补全如下:

python 复制代码
DataFrame.drop_duplicates(subset=None, keep='first', inplace=False, ignore_index=False)

其中, s u b s e t subset subset是固定那些行, k e e p keep keep是针对冗余信息的处理方式, i n p l a c e inplace inplace是指是否对表格进行直接修改, i g n o r e _ i n d e x ignore\_index ignore_index表示是否重置索引。

题目还介绍了 r e s e t _ i n d e x reset\_index reset_index函数,只需要按照题目要求完成即可。

代码如下:

python 复制代码
import pandas as pd

data = pd.read_csv("src/death.csv", index_col='Unnamed: 0')

data = data.dropna(axis=1, thresh=data.shape[0] * 0.2)
data = data.dropna(axis=0, thresh=data.shape[1] * 0.2)

a = pd.isna(data).sum()
cols = [x for i, x in enumerate(a.index) if a[i] > 0]

mode_list = 'FIPS Admin2'
for i in cols:
    if mode_list.find(i) != -1: 
        data[i] = data[i].fillna(data[i].mode().iloc[0])
    else:
        data[i] = data[i].fillna(data.mean()[i])

########## Begin ##########
df = pd.DataFrame(data = data)
#去除所有重复项
df = df.drop_duplicates(keep = False)
#重置索引,从0重新开始
data = df.reset_index(drop = True)

########## End ##########

print(data)

做一些补充

如果前几个实训有过尝试就会发现, d a t a data data本身就是一个 D a t a F r a m e DataFrame DataFrame类型的数据,所以我们根本不需要强制转换类型,也就是

python 复制代码
df = pd.DataFrame(data = data)

这一步是完全没用的,直接对 d a t a data data操作即可。

代码更改为:

python 复制代码
import pandas as pd

data = pd.read_csv("src/death.csv", index_col='Unnamed: 0')

data = data.dropna(axis=1, thresh=data.shape[0] * 0.2)
data = data.dropna(axis=0, thresh=data.shape[1] * 0.2)

a = pd.isna(data).sum()
cols = [x for i, x in enumerate(a.index) if a[i] > 0]

mode_list = 'FIPS Admin2'
for i in cols:
    if mode_list.find(i) != -1: 
        data[i] = data[i].fillna(data[i].mode().iloc[0])
    else:
        data[i] = data[i].fillna(data.mean()[i])

########## Begin ##########
#去除所有重复项
data = data.drop_duplicates(keep = False)
#重置索引,从0重新开始
data = data.reset_index(drop = True)

########## End ##########

print(data)

但是上述的 d r o p drop drop函数里有一个参数叫 i g n o r e _ i n d e x ignore\_index ignore_index,难道不可以直接对这个参数进行操作进而不需要 r e s e t _ i n d e x reset\_index reset_index了吗?

不可以,因为 E d u c o d e r Educoder Educoder上给出的 P a n d a s Pandas Pandas版本过于老旧,当时的 d r o p _ d u p l i c a t e s drop\_duplicates drop_duplicates函数还只有三个参数,并不能自行重置索引。

而在 r e s e t i n d e x reset_index resetindex函数中的 d r o p drop drop,则是是否保留原索引列。如果直接调用这个函数而不置 d r o p drop drop为 T r u e True True的话, d r o p drop drop默认为 F a l s e False False会单独将原索引列保留为一个普通列。

相关推荐
Mid_search1 小时前
随机排列与Fisher-Yates算法
人工智能·深度学习·强化学习·随机排列·fisher-yates
DeepVisionary5 小时前
谷歌 Gemini Omni 1.1 Flash 正式发布:4K 视频、40 秒场景延伸,视频生成进入按 token 计费时代
python·自动化
ZGIAI5 小时前
ZGI Workflow:条件分支走错时先查哪一层
人工智能·架构
X54先生(人文科技)5 小时前
《元创力》纪实录 · 桥段 《窑变纪元:一份来自星历2227年的深空考古笔记》
人工智能·开源·ai写作·零知识证明
ZGIAI5 小时前
ZGI 文件产物:生成报告后怎样交付
人工智能·架构
东方-教育技术博主5 小时前
自动编码在教育场景中的重要性:一项基于多源证据的深度综述
大数据·人工智能
骥龙6 小时前
模块二:Ollama本地模型部署与OpenCode代理配置
人工智能
阡之尘埃6 小时前
Python数据分析案例85——大模型微调全流程(SFT的LoRA微调)
人工智能·python·深度学习·语言模型·llm·微调·千问
Regentsoft丽晶软件6 小时前
品牌方新品上市促销政策无法实时同步经销商,有没有支持总部-经销商-终端一站式的分销解决方案?
人工智能·经验分享·数据库架构
liuqs3326 小时前
机器人产业加速发展,制造业正在迎来新的自动化探索
大数据·人工智能