点击上方 "Python人工智能技术" 关注,星标或者置顶22点24分准时推送,第一时间送达

编辑:技术君

来源:机器之心

Python人工智能技术(ID:coder_experience)第277次推文

上一篇:中科大博士20万字正经论文:教你如何给女朋友送礼物

正文

Python 是开源的,它很棒,但是也无法避免开源的一些固有问题:很多包都在做(或者在尝试做)同样的事情。如果你是 Python 新手,那么你很难知道某个特定任务的最佳包是哪个,你需要有经验的人告诉你。有一个用于数据科学的包绝对是必需的,它就是 pandas。pandas 最有趣的地方在于里面隐藏了很多包。它是一个核心包,里面有很多其他包的功能。这点很棒,因为你只需要使用 pandas 就可以完成工作。pandas 相当于 python 中 excel:它使用表(也就是 dataframe),能在数据上做各种变换,但还有其他很多功能。如果你早已熟知 python 的使用,可以直接跳到第三段。让我们开始吧!

pandas 最基本的功能

读取数据

data = pd.read_csv( my_file.csv )data = pd.read_csv( my_file.csv , sep= ; , encoding= latin-1 , nrows=1000, skiprows=[2,5])

sep 代表的是分隔符。如果你在使用法语数据,excel 中 csv 分隔符是「;」,因此你需要显式地指定它。编码设置为 latin-1 来读取法语字符。nrows=1000 表示读取前 1000 行数据。skiprows=[2,5] 表示你在读取文件的时候会移除第 2 行和第 5 行。

  • 最常用的功能:read_csv, read_excel
  • 其他一些很棒的功能:read_clipboard, read_sql

写数据

data.to_csv( my_new_file.csv , index=None)

index=None 表示将会以数据本来的样子写入。如果没有写 index=None,你会多出一个第一列,内容是 1,2,3,...,一直到最后一行。我通常不会去使用其他的函数,像.to_excel, .to_json, .to_pickle 等等,因为.to_csv 就能很好地完成工作,并且 csv 是最常用的表格保存方式。

检查数据

image
Gives (#rows, #columns)

给出行数和列数。

data.describe()
计算基本的统计数据。

查看数据

data.head(3)

打印出数据的前 3 行。与之类似,.tail() 对应的是数据的最后一行。

data.loc[8]

打印出第八行。

data.loc[8,  column_1 ]

打印第八行名为「column_1」的列。

data.loc[range(4,6)]

第四到第六行(左闭右开)的数据子集。

pandas 的基本函数

逻辑运算

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 )]

通过逻辑运算来取数据子集。要使用 & (AND)、 ~ (NOT) 和 | (OR),必须在

逻辑运算前后加上“(”和“)”。

data[data[ column_1 ].isin([ french ,  english ])]

除了可以在同一列使用多个 OR,你还可以使用.isin() 函数。基本绘图matplotlib 包使得这项功能成为可能。正如我们在介绍中所说,它可以直接在 pandas 中使用。

data[ column_numerical ].plot()

image

.plot() 输出的示例

data[ column_numerical ].hist()

画出数据分布(直方图)


image

.hist() 输出的示例

%matplotlib inline

如果你在使用 Jupyter,不要忘记在画图之前加上以上代码。

更新数据

data.loc[8,  column_1 ] =  english将第八行名为 column_1 的列替换为「english」

data.loc[data[ column_1 ]== french ,  column_1 ] =  French

在一行代码中改变多列的值。好了,现在你可以做一些在 excel 中可以轻松访问的事情了。下面让我们深入研究 excel 中无法实现的一些令人惊奇的操作吧。

中级函数

统计出现的次数

data[ column_1 ].value_counts()
image

.value_counts() 函数输出示例

在所有的行、列或者全数据上进行操作

data[ column_1 ].map(len)

len() 函数被应用在了「column_1」列中的每一个元素上.map() 运算给一列中的每一个元素应用一个函数

data[ column_1 ].map(len).map(lambda x: x/100).plot()

pandas 的一个很好的功能就是链式方法(https://tomaugspurger.github.io/method-chaining)。它可以帮助你在一行中更加简单、高效地执行多个操作(.map() 和.plot())。

data.apply(sum)

.apply() 会给一个列应用一个函数。.applymap() 会给表 (DataFrame) 中的所有单元应用一个函数。

tqdm, 唯一的

在处理大规模数据集时,pandas 会花费一些时间来进行.map()、.apply()、.applymap() 等操作。tqdm 是一个可以用来帮助预测这些操作的执行何时完成的包(是的,我说谎了,我之前说我们只会使用到 pandas)。

from tqdm import tqdm_notebooktqdm_notebook().pandas()

用 pandas 设置 tqdm

data[ column_1 ].progress_map(lambda x: x.count( e ))

用 .progress_map() 代替.map()、.apply() 和.applymap() 也是类似的。

image

在 Jupyter 中使用 tqdm 和 pandas 得到的进度条

相关性和散射矩阵

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

.corr() 会给出相关性矩阵

pd.plotting.scatter_matrix(data, figsize=(12,8))
image

散点矩阵的例子。它在同一幅图中画出了两列的所有组合。

pandas 中的高级操作

The SQL 关联

在 pandas 中实现关联是非常非常简单的

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

关联三列只需要一行代码

分组

一开始并不是那么简单,你首先需要掌握语法,然后你会发现你一直在使用这个功能。

data.groupby( column_1 )[ column_2 ].apply(sum).reset_index()

按一个列分组,选择另一个列来执行一个函数。.reset_index() 会将数据重构成一个表。

image

正如前面解释过的,为了优化代码,在一行中将你的函数连接起来。

行迭代

dictionary = {}

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

.iterrows() 使用两个变量一起循环:行索引和行的数据 (上面的 i 和 row)。总而言之,pandas 是 python 成为出色的编程语言的原因之一。我本可以展示更多有趣的 pandas 功能,但是已经写出来的这些足以让人理解为何数据科学家离不开 pandas。总结一下,pandas 有以下优点:

  • 易用,将所有复杂、抽象的计算都隐藏在背后了;
  • 直观;
  • 快速,即使不是最快的也是非常快的。

它有助于数据科学家快速读取和理解数据,提高其工作效率。

原文链接:

https://towardsdatascience.com/be-a-more-efficient-data-scientist-today-master-pandas-with-this-guide-ea362d27386

技术君个人微信

添加技术君个人微信即送一份惊喜大礼包

→ 技术资料共享

→ 技术交流社群

--END--

往日热文:

PyTorch版YOLOv4更新了,不仅适用于自定义数据集,还集成了注意力和MobileNet

从6行到92行:If-Else是贫瘠的多态性

关于Python 3.9,那些你不知道的事

外媒:中国准备对谷歌发动反垄断调查,目标安卓,最快10月决定

如何友好的把Python和Bash结合在一起

无序的集合:Python中的数学集合运算

喜欢本文的朋友们,欢迎长按下图关注订阅号Python人工智能技术

收看更多精彩内容

你在看吗?一起成长

jupyter 写入csv pandas_整理一套 pandas 详细教程,希望对你有帮助!相关推荐

  1. 整理一套pandas详细教程,希望对你有帮助!

    来源:机器之心 本文约2000字,建议阅读5分钟 pandas 是 python 成为出色的编程语言的原因之一. Python 是开源的,它很棒,但是也无法避免开源的一些固有问题:很多包都在做(或者在 ...

  2. 【宝藏级】全网最全的Pandas详细教程(2万字总结)

    [回炉重造]Python之Pandas详细教程 前言 为什么要学习Pandas? 什么是Pandas? 1. Pandas的索引操作 1. Series和DataFrame中的索引都是Index对象 ...

  3. jupyter 写入csv pandas_Pandas 最详细教程在这里

    Python 是开源的,它很棒,但是也无法避免开源的一些固有问题:很多包都在做(或者在尝试做)同样的事情.如果你是 Python 新手,那么你很难知道某个特定任务的最佳包是哪个,你需要有经验的人告诉你 ...

  4. 金蝶k3rpc服务器不可用_会计小白金蝶软件不会建账套?详细教程都在这里,别再发愁...

    还在为不会操作金蝶软件而头疼吗? 今天,小编和大家分享一些金蝶软件实操技巧,让大家更快速的完成工作! (文末可免费领取完整版示例课件) 如果想知道如何使用金蝶,那么熟悉其操作流程时必不可少的. 整个软 ...

  5. python3 库pandas写入csv格式文件出现中文乱码问题解决方法

    python3 库pandas写入csv格式文件出现中文乱码问题解决方法 参考文章: (1)python3 库pandas写入csv格式文件出现中文乱码问题解决方法 (2)https://www.cn ...

  6. csv java web 导入_DAY5-step9 使用CSV模块和Pandas在Python中读取和写入CSV文件

    什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据. CSV是一种紧凑,简单且通用的数据交换通用格式. 许多在线服务允许其用户将网站中的表格数据导出到CSV文件中. CSV ...

  7. pythonpandas读取csv文件最后一行_简单小案例(一):使用Pandas在Python中读取和写入CSV文件...

    前期文章链接: YOLOv3论文 https://arxiv.org/pdf/1804.02767.pdf 正文: 有许多方法可以在Python中读写CSV文件.有几种不同的方法,例如,您可以使用Py ...

  8. 问题:使用pandas中的DataFrame写入csv文件多出一行unnamed,如何解决呢??

    问题:使用pandas中的DataFrame写入csv文件多出一行unnamed,如何解决呢?? 参考文章: (1)问题:使用pandas中的DataFrame写入csv文件多出一行unnamed,如 ...

  9. 用python的pandas打开csv文件_使用CSV模块和Pandas在Python中读取和写入CSV文件

    什么是CSV文件? CSV文件是一种纯文本文件,其使用特定的结构来排列表格数据.CSV是一种紧凑,简单且通用的数据交换通用格式.许多在线服务允许其用户将网站中的表格数据导出到CSV文件中.CSV文件将 ...

最新文章

  1. c语言读h5文件,我利用C语言实现SHA-256算法,需要从一个txt文件中读出数据并把...
  2. springboot+mybatis+thymeleaf项目搭建及前后端交互
  3. Web控件TreeView展开无闪烁的两个解决方法
  4. C#提供的类库能够轻松实现对文件的操作
  5. Hibernate-----5、持久化对象
  6. B端产品的PMF的定义原则
  7. 高通平台提高核电电压
  8. 专题二:浅谈社交行业如何有效反欺诈
  9. android端集成FTP文件下载功能
  10. ksh 命令退出状态
  11. Python遥感影像SAR分割裁剪多张小影像
  12. [附源码]java毕业设计学习资源共享与在线学习系统
  13. Ubuntu配置网络代理
  14. 【安全科普】AD域安全协议(一)kerberos
  15. msconfig设置最大内存导致电脑无法启动解决方法
  16. 2022-2027年中国面膜行业市场调研及未来发展趋势预测报告
  17. CSS简单的交互动效
  18. 【作废】Inventor 二次开发学习指南入门到精通(含Inventor最新二次开发教程下载)
  19. UTC时间转PST时间,区分冬夏令时
  20. xp 下启用 ahci 模式

热门文章

  1. 小学计算机第二课堂内容,小学第二课堂活动实施方案
  2. 面向数据安全治理的数据内容智能发现与分级分类 A榜rank7 B榜rank10
  3. Java 工具(jmap,jstack)在linux上的源码分析(四)safe point
  4. 招行票付通对接总体流程(商业票据)
  5. 阿里云盘挂载到本地(最简单的方法)
  6. 语音转文字的测试用例aqq端
  7. CAD二次开发 解决填充图案(Hatch)填充比例无法自动更新问题
  8. C#之CAD二次开发(5) CAD图形填充封装
  9. Python基础爬虫课设
  10. 基于Vue+Springboot开发的电影订票购票微信小程序