Python是开源的,这带给我们极大便利。但也带来了开源的固有问题:
许多包都在做 (或试图做) 同样的事情。
如果你是Python新手,很难知道哪一个包是特定任务的最佳选择。你需要有经验的人给你指导。
而我今天要告诉你:有一个玩数据你必须要学会弄懂弄通的包,它就是pandas。
Pandas真正强大的地方在于,很多其他包都隐藏在它内核里面。
Pandas它是一个核心包,里面有很多其他包的附加功能。它的好处在于你可以只用pandas语法,但是却拥有好几人的功力,就跟天龙八部的慕容复一样。
pandas就像Python中的Excel:它使用表格(即DataFrame)并对数据进行转换操作。但它能做的事情其实还有很多。
如果你已经熟悉Python,你可以直接进入第3段。
如果你还不熟悉Python,建议你一步步从头开始。
让我们开始吧!
Pandas最基本的函数
读取数据
sep是分隔符的意思。如果你使用的是法语数据,Excel中的csv分隔符是";",所以你需要明确它。
编码设置为 "latin-1 "以读取法语字符。nrows=1000表示读取前1000行。
最常用的函数:read_csv,read_excel。
其他一些不错的函数:read_clipboard(我经常使用的方式,从Excel或从网络复制数据),read_sql。
写入数据
index=None将简单地按原样写入数据。
如果你不写index=None,你会得到额外的第一列1,2,3,...直到最后一行。
我通常不会去使用其他函数,比如.to_excel,.to_json,.to_pickle,因为.to_csv已经可以很好的完成这项工作了,因为csv是最常见的保存表格的方式。除此之外,如果你和我一样是个Excel狂人,想把你的结果从Python粘贴到Excel上,那么.to_clipboard也是必不可少的。
检查数据
给定(#行,#列)
计算基本统计数据
查看数据
输出数据的前3行。与.head()类似,.tail()将查看数据的最后几行。
输出第8行
在 "column_1 "上输出第8行的值
第4至第6行的子集(不包括在内)
Pandas的一些基础函数
逻辑运算
要使用&(AND)、~(NOT)和|(OR),必须在逻辑运算前后加上"("AND")"。
使用.isin()函数,而不是为同一列写多个OR。
基本绘图
这个功能的实现得益于matplotlib包。正如我们在介绍中所说,它可以直接在pandas中使用。
.plot()的输出示例
绘制分布图(柱状图)
.hist()输出示例
如果你使用Jupyter,别忘记在绘图之前写下这一行(在笔记本上只写一次)
更新数据
将第8行'column_1'处的值替换为'english'。
在一行中改变多行的值
好了,现在你可以做一些在Excel中很容易实现的事情了。让我们来挖掘一些在Excel中做不到的神奇事情。
Pandas的一些中级函数
计数出现的次数
.value_counts()输出示例
对整行、整列或全部数据进行操作
len()函数被应用于'column_1'的每个元素
.map()运算将一个函数应用于列的每个元素。
Pandas的一大特点是链式方法。
它可以帮助你在一条线上完成多个操作(这里是.map()和.plot()),更加简单和高效
.apply()将一个函数应用到列上。使用.apply(, axis=1)对行进行应用。
.applymap()将一个函数应用于表中的所有单元格(DataFrame)。
tqdm 的独一无二
当处理大型数据集时,pandas在运行.map()、.apply()、.applymap() 运算时可能会花费一些时间。tqdm是一个非常有用的包,它可以帮助预测这些运算何时会完成执行。
用pandas设置tqdm
将.map()替换为.progress_map(),同样替换为.apply()和.applymap()。
这是Jupyter中使用tqdm和pandas得到的进度条
相关性和散点矩阵
.corr()会给出相关的矩阵
离散矩阵的例子。它绘制了同一图表中两列的所有组合。
处理缺失值
inplace=True将会直接在你的数据集中填充缺失的值。
如果你不写inplace=True,它将暂时填充缺失的值,而不是永久地填充。
Pandas的一些高级运算
SQL连接
在3列上连接只需要一行
分组
刚开始的时候没有那么简单,你需要先掌握语法,然后你就能一直运用这个功能了。
按一列分组,选择另一列对其进行函数操作。.reset_index()将你的数据重塑为一个DataFrame(表)
正如前面所解释的,将你的函数链在一行中,从而获得最佳的代码。
迭代行
.iterrows()一起循环浏览2个变量:行的索引和行(上面代码中的i和行)
总而言之,Python之所以是一门伟大的语言,其原因之一便是Pandas。
我们还可以展示很多其他pandas的有趣功能,但以上这些这已经足够理解为什么一个玩数据的不能没有pandas了。
总结一下,pandas是
简单易用,把所有复杂和抽象的计算都隐藏在背后
直观
快速,python里最快的数据分析包(它在C语言中高度优化)。
它是帮助新手入门数据分析,用于快速阅读和理解数据的最佳工具。
懂得原创不易的人都点了赞和在看。感谢有你,我们一起学习!