IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 数据分析中的数据处理以及特征分析 -> 正文阅读

[人工智能]数据分析中的数据处理以及特征分析

主要讲述在数据处理及特征分析中利用到的pandas库中的功能,该文以Datawhale提供的资料以及网络搜集的资源整理而成,如有错误欢迎指正。

目录

?一.查看空缺的数值所在的位置

?二.对缺失值进行处理

1.判断缺失值

2.处理缺失值

三.重复值观察与处理

1.查看数据中的重复值

2.对重复值经行处理

四.?特征观察与处理

1.列如对年龄进行分箱(离散化)处理

五.对文本变量进行转换

1.?查看类别文本变量名及种类

2.将类别文本转换为12345

3.?将类别文本转换为one-hot编码


?一.查看空缺的数值所在的位置

方法一
作用为给出样本数据的相关信息概览 :行数,列数,列索引,列非空值个数,列类型,内存占用

 df.info() 
方法二
作用为给出所有的列名,并在后显示各列的空值个数

df.isnull().sum()

?二.对缺失值进行处理

1.判断缺失值

方法1:is的判断速度要快于==,适用于数值,字符串等简单的结构,像列表,元组等复杂些的则无法判断

df[df['Age'] is None] = 0

方法 2:判断数据是否为NAN,为缺失值返回True,否则为False,比上述is判断范围更大

df[df['Age'].isnull()] = 0

?方法3:此判断方法比上述两种更具优势,能够判断数据类型为float64

df[df['Age'] == np.nan] = 0

2.处理缺失值

方法1:删除

df.dropna().head(3) 

?用法dropna()删除所有存在缺失值的行

dropna(axis='columns')删除所有存在缺失值的列?

dropna(how='all')删除缺失所有值的行?

dropna(thresh=2)删除最少缺失两个值的行?

dropna(subset=['列名', '列名'])删除缺失该任一列名下的值的行?

dropna(inplace=True)将具有有效条目的数据帧保留在同一变量中,与第一相似

方法2:替换

 df.fillna(0).head(3) 

用法?fillna(0)将所有的NaN替换为0 #

fillna(method="ffill")将NaN替换为其前方非空值中的元素?

values = {"列名": 替换成的值} ,?df.fillna(value=values)? 完成对应列空值的替换 ?

fillna(value=values, limit=1),仅替换第一行的NaN?

df2 = pd.DataFrame(np.zeros((行数, 列数)), columns=list("列名")),? df.fillna(df2) df2中的值会替代df的相同位置且为NaN,位置相同为列名相同和所在行数相等

三.重复值观察与处理

1.查看数据中的重复值

df[df.duplicated()]

用法df.duplicated()默认情况下,对于每组重复值,第一个匹配项设置为 False,所有其他值都设置为 True。

#df.duplicated(keep='last')通过使用“last”,每组重复值的最后一次出现设置在 False 上,所有其他值都设置为 True。

df.duplicated(keep=False)通过设置 False,所有重复项均为 True?

df.duplicated(subset=['列名'])要查找特定列上的重复项

2.对重复值经行处理

df = df.drop_duplicates()  # 删除重复的数据,其它用法与subset=['列名']删除特定的一样
df.head()
df.to_csv('test_clear.csv')  # 保存清洗后的数据

四.?特征观察与处理

1.列如对年龄进行分箱(离散化)处理

方法一、将连续变量Age平均分箱成5个年龄段,并分别用类别变量12345表示

df['AgeBand'] = pd.cut(df['Age'], 5, labels=[1, 2, 3, 4, 5])

用法pd.cut(数组(必须是一维的),分组数,labels=['分组名称'])

方法二、将连续变量Age划分为(0,5] (5,15] (15,30] (30,50] (50,80]五个年龄段,并分别用类别变量12345表示

df['AgeBand'] = pd.cut(df['Age'], [0, 5, 15, 30, 50, 80], labels=[1, 2, 3, 4, 5])

?方法三、将连续变量Age按10% 30% 50 70% 90%五个年龄段,并用分类变量12345表示

df['AgeBand'] = pd.qcut(df['Age'], [0, 0.1, 0.3, 0.5, 0.7, 0.9], labels=[1, 2, 3, 4, 5])

五.对文本变量进行转换

1.?查看类别文本变量名及种类

?value_counts

df['Sex'].value_counts()
df['Cabin'].value_counts()

?DataFrame.value_counts(subset=None, normalize=False, sort=True, ascending=False, dropna=True)

subset:对唯一组合进行计数时要使用的列

normalize:返回比例而不是频率

sort:按频率排序

ascending:按升序排序

dropna:不要包含包含 NA 值的行计数

2.将类别文本转换为12345

方法一: replace

df['Sex_num'] = df['Sex'].replace(['male', 'female'], [1, 2])
df.head()

?用法:将['male','female'],替换成[1,2]

通过replace({0:10,1:100})可以将列表中的所有0替换成10,1替换成100

?replace({'列名': 0, '列名': 5}, 100)将特定列名的0,5替换成100?

replace({'列名': {0: 100, 4: 400}})将特定列中的0替换成100,将4替换成400

?df.replace(regex=r'^”特征“.$', value='目标')将具有包含“特征”的元素替换成‘目标’

?replace({'A': r'^ba.$'}, {'A': 'new'}, regex=True)作用同上但有列的范围

方法二:map

df['Sex_num'] = df['Sex'].map({'male': 1, 'female': 2})
df.head()

3.?将类别文本转换为one-hot编码

OneHotEncoder

for feat in ["Age", "Embarked"]:
    #     x = pd.get_dummies(df["Age"] // 6)
    #     x = pd.get_dummies(pd.cut(df['Age'],5))
    x = pd.get_dummies(df[feat], prefix=feat)  # 将类别变量转换为虚拟/指示符变量,即将feat中不同类别的量转化成二维的0与1
    df = pd.concat([df, x], axis=1)  # 将x中的数据连接转化到表格上axis=1即为转化成列的形式,axis=0时为行
    # df[feat] = pd.get_dummies(df[feat], prefix=feat)
df.head()
df['Title'] = df.Name.str.extract('([A-Za-z]+)\.', expand=False)
# 如果为 True,则返回 DataFrame,每个捕获组包含一列。如果为 False,则返回序列/索引(如果有一个捕获组)或 DataFrame(如果有多个捕获组)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-07-17 16:23:46  更:2022-07-17 16:26:07 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 0:42:02-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码