1.案例数据来自python数据分析手册,github地址:https://github.com/jakevdp/PythonDataScienceHandbook/tree/master/notebooks/data
不克隆项目,怎么在github下载单个文件?:https://www.cnblogs.com/zhaoqingqing/p/5534827.html
2.pandas读取文件,参考:https://blog.csdn.net/sinat_29957455/article/details/79054126
1.导入三剑客的包:
2.读取数据:
read_csv可以读取1G的数据(excel无法打开)
读入各州缩写:
读入各州面积:
读入各州人口:
3.合并pop和abbr两个df
使用简称,合并全称,可知,需要使用merge:
并且,左右两列没有相同columns,需要使用left_on/right_on来进行限定;
由于默认使用的是内连接,所以通过shape发现会有部分未连接上的数据,通过how,可以控制内外连接方式:
//使用right右连接,也会出现2448,原因是虽然右表只有51条,但是左表有多条对应,会出现一对多
发现用于连接的列,有重复的列,我们可以使用drop进行删除一列:通过axis控制,我们就删除了一列:
但是特别注意,drop返回的是删除后的新DF,原先的DF未改变(这点可以通过看控制台是否输出了内容,有输出时则是返回了新的数据,没有则是在原基础上修改)
要想在原基础上修改,需要控制inplace参数:
通过isnull()返回和原先形状相等的df,再通过any看哪一列有空值:
进一步,通过空值操作,可以查看具体哪些州有数据缺失:(通过unique来查看唯一值)
下一步,使用正确的值,填充这些缺失值:(通过boolean值来进行筛选,注意boolean这个Series的产生)
USA的处理,同理:
验证结果:(可以发现state已经没有空值)
4.合并pop和areas两个df
同样,使用merge:
原文地址:https://www.cnblogs.com/jiangbei/p/11369174.html