申请专栏作者
投稿发布
您的当前位置:主页 > 数据挖掘 > 正文

pandas指南:做更高效的数据科学家

来源: 时间:2019-01-26
请点击下面的广告后浏览!

摘要:Python是开源的,所以有很多开源固有的问题。如果你是Python新手,很难知道针对特定任务的包哪个是最好的。你需要有经验的人来告诉你。今天我要告诉你们的是:在数据科学中,有一个软件包是你们绝对需要学习的,那就是pandas。 可思数据sykv.com

  可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

而pandas真正有趣的地方是,很多其他的包也在里面。pandas是一个核心包,因此它具有来自其他各种包的特性。

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

pandas类似于Python中的Excel:它使用表(即DataFrame)并对数据进行转换,但它还能做更多。 可思数据sykv.com,sykv.cn

如果你已经熟悉Python,可以直接进入第三部分

可思数据sykv.com,sykv.cn

现在让我们开始: 可思数据-人工智能资讯平台sykv.com

import pandas as pd

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

pandas包最基本的功能 可思数据-人工智能资讯平台sykv.com

1、读取数据: 可思数据-人工智能资讯平台sykv.com

data = pd.read_csv('my_file.csv')
data=pd.read_csv('my_file.csv',sep=';',encoding='latin-1',nrows=1000, kiprows=[2,5]) 可思数据-www.sykv.cn,sykv.com

sep变量代表分隔符。因为Excel中的csv分隔符是“;”,因此需要显示它。编码设置为“latin-1”以读取法语字符。nrows=1000表示读取前1000行。skiprows=[2,5]表示在读取文件时将删除第2行和第5行

可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

最常用的函数:read_csv, read_excel

可思数据sykv.com,sykv.cn

还有一些很不错的函数:read_clipboard、read_sql 可思数据sykv.com,sykv.cn

2、写入数据

可思数据sykv.com,sykv.cn

data.to_csv('my_new_file.csv', index=None) 可思数据sykv.com,sykv.cn

index=None将简单地按原样写入数据。如果你不写index=None,会得到额外的行。

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

我通常不使用其他函数,比如to_excel,to_json,to_pickle,to_csv,虽然它们也做得很好,但是csv是保存表最常用的方法。

本文来自可思数据(sykv.com),转载请联系本站及注明出处

3、检查数据:

可思数据sykv.com,sykv.cn

data.shape
data.describe()
data.head(3) 可思数据sykv.com

.head(3)打印数据的前3行,.tail()函数将查看数据的最后一行。

可思数据sykv.com,sykv.cn

data.loc[8]

可思数据sykv.com,sykv.cn

打印第8行。

可思数据-人工智能资讯平台sykv.com

data.loc[8, 'column_1']

可思数据sykv.com,sykv.cn

将第8行值打印在“column_1”上。

内容来自可思数据sykv.com

data.loc[range(4,6)]

可思数据sykv.com,sykv.cn

打印第4行到第6行。 可思数据-www.sykv.cn,sykv.com

pandas的初级功能 可思数据sykv.com,sykv.cn

1、逻辑运算 内容来自可思数据sykv.com

data[data['column_1']=='french']
data[(data['column_1']=='french') & (data['year_born']==1990)]
data[(data['column_1']=='french')&(data['year_born']==1990)&(data['city']=='London')] 内容来自可思数据sykv.com

如果要根据逻辑操作对数据进行运算,在使用& (AND)、~ (NOT)和| (OR)等逻辑操作之前和之后添加“(”&“)”。 本文来自可思数据(sykv.com),转载请联系本站及注明出处

data[data['column_1'].isin(['french', 'english'])] 可思数据sykv.com,sykv.cn

不要为同一列编写多个OR,最好是使用.isin()函数。

可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

2、基本绘图

可思数据sykv.com,sykv.cn

多亏了matplotlib包,这个特性才得以实现。就像我们在介绍中说的,它可以直接用在pandas身上。 本文来自可思数据(sykv.com),转载请联系本站及注明出处

data['column_numerical'].plot()

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

  可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

 

可思数据sykv.com,sykv.cn

图 1 .plot() 输出示例 可思数据sykv.com,sykv.cn

data['column_numerical'].hist()

本文来自可思数据(sykv.com),转载请联系本站及注明出处

绘制分布图(直方图)

可思数据-www.sykv.cn,sykv.com

 

可思数据-www.sykv.cn,sykv.com

  内容来自可思数据sykv.com

图 2 .hist() 函数输出示例 可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

%matplotlib inline 可思数据-www.sykv.cn,sykv.com

如果你使用Jupyter,在绘图之前,不要忘记写这一行(在代码中只写一次)

可思数据sykv.com,sykv.cn

3、更新数据 可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

data.loc[8, 'column_1'] = 'english'

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

将' column_1 '的第8行值替换为' english '

内容来自可思数据sykv.com

data.loc[data['column_1']=='french', 'column_1'] = 'French' 可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

在一行中更改多行值

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

pandas的中级功能

可思数据-人工智能资讯平台sykv.com

现在你可以做一些在Excel中很容易做的事情。让我们来挖掘一些在Excel中做不到的神奇事情。

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

1、计算功能 可思数据-人工智能资讯平台sykv.com

data['column_1'].value_counts()

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

 

本文来自可思数据(sykv.com),转载请联系本站及注明出处

 

内容来自可思数据sykv.com

图 3 .value_counts() 输出示例

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

2、对全行、全列或所有数据的操作 可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

data['column_1'].map(len) 可思数据sykv.com,sykv.cn

len()函数应用于“column_1”的每个元素

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

map()操作将一个函数应用于列的每个元素。

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

data['column_1'].map(len).map(lambda x : x/100).plot() 本文来自可思数据(sykv.com),转载请联系本站及注明出处

pandas的另一个特点是进行链式操作。它可以帮助你在一行代码中执行多个操作,从而更加简单和高效。 可思数据-人工智能资讯平台sykv.com

data.apply(sum)

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

.apply()将函数应用于列。 本文来自可思数据(sykv.com),转载请联系本站及注明出处

.applymap()将一个函数应用于表(DataFrame)中的所有单元格。 可思数据-www.sykv.cn,sykv.com

3、tqdm包

可思数据-人工智能资讯平台sykv.com

在处理大型数据集时,pandas可能需要一些时间来运行.map()、.apply()、.applymap()操作。tqdm是一个非常有用的包,它可以帮助预测这些操作何时完成。 可思数据sykv.com,sykv.cn

from tqdm import tqdm_notebook
tqdm_notebook().pandas()

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

用pandas设置tqdm

可思数据-www.sykv.cn,sykv.com

data['column_1'].progress_map(lambda x : x.count('e')) 可思数据sykv.com,sykv.cn

将.map()替换为.progress_map(),.apply()和.applymap()也是一样 可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

 

可思数据-人工智能资讯平台sykv.com

  内容来自可思数据sykv.com

图4 这是你在Jupyter上看到的的进度条 可思数据-www.sykv.cn,sykv.com

4、相关矩阵和散射矩阵 可思数据sykv.com,sykv.cn

data.corr()

可思数据sykv.com,sykv.cn

data.corr().applymap(lambda x : int(x*100)/100)

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

  可思数据sykv.com

 

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

图 5.corr() 函数会得到相关矩阵 可思数据sykv.com,sykv.cn

pd.plotting.scatter_matrix(data, figsize=(12,8)) 可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

 

内容来自可思数据sykv.com

  可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

图 6散射矩阵的例子,它绘制同一图表中两列的所有组合

可思数据-AI,sykv.com智能驾驶,人脸识别,区块链,大数据

pandas的高级功能

本文来自可思数据(sykv.com),转载请联系本站及注明出处

1、€行列合并

本文来自可思数据(sykv.com),转载请联系本站及注明出处

在pandas中,行列合并非常简单。 本文来自可思数据(sykv.com),转载请联系本站及注明出处

data.merge(other_data, on=['column_1', 'column_2', 'column_3'])

可思数据sykv.com,sykv.cn

合并3列只需要一行代码

可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

2、分组

可思数据sykv.com

分组一开始并不简单,但是如果掌握其语法,你将发现这非常简单。 可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

data.groupby('column_1')['column_2'].apply(sum).reset_index() 可思数据-人工智能资讯平台sykv.com

按列分组,选择要在其上操作函数的另一列。reset_index()将数据重新生成DataFrame(表) 可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

 

可思数据-AI,sykv.com人工智能,深度学习,机器学习,神经网络

 

可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

图 7使用链式操作,只需一行代码

可思数据sykv.com,sykv.cn

3、遍历行

可思数据-人工智能资讯平台sykv.com

dictionary = {}
for i,row in data.iterrows():
dictionary[row['column_1']] = row['column_2']

可思数据sykv.com

iterrows()循环两个变量:行索引和行(上面代码中的i和row)。 可思数据-数据挖掘,智慧医疗,机器视觉,机器人sykv.com

总体来说,pandas是一个帮助数据科学家快速阅读和理解数据的工具包,它也可以说是Python如此优秀的原因之一。我还可以展示更多pandas包其他有趣的特点,但以上所述足以让人理解为什么数据科学家离不开pandas包。总之,pandas包有以下特点:

可思数据sykv.com

1、 简单易用,隐藏了所有复杂和抽象的计算;
2、非常直观;
3、快速。

本文来自可思数据(sykv.com),转载请联系本站及注明出处

文章原标题《Be a more efficient data scientist, master pandas with this guide》,译者:黄小凡,

可思数据sykv.com


转发量:

网友评论:

发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片

关于我们   免责声明   广告合作   版权声明   联系方式   原创投稿   网站地图  

Copyright©2005-2019 Sykv.com 可思数据 版权所有    ICP备案:京ICP备14056871号

人工智能资讯   人工智能资讯   人工智能资讯   人工智能资讯

扫码入群
咨询反馈
扫码关注

微信公众号

返回顶部
关闭