(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

数据分组

按照City分组,并计算sum值的平均数。

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

如果一次传入多个数组,就会得到按多列数值分组的统计结果。

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

将省份作为索引

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

groupby的size方法,可以返回一个含有个分组大小的Series

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

数据分割

显示30到32行的数据

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

数据合并

pandas有一些内置的合并数据集方法,如下所示:

  • pandas.merge根据一个或多个键将多个DataFrame连接起来,类似数据库连接。
  • pandas.concat可以沿着一个轴将多个对象堆叠起来。
  • combine_first可以将重复数据编织在一起,用以填充另一个对象的缺失值。

数据库风格的DataFrame合并,这里merge方法默认使用inner连接(内连接),通过how参数可以指定连接方式,如outer外连接,left左连接,right右连接。

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

索引上的合并

传入left_index=True或者right_index=True,可以将索引作为连接键使用

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

DataFrame还有join方法,可以更好地合并索引,df1.join(df2)效果等同上面。

轴向连接

这是另一种连接,也被称为连接、绑定或堆叠。

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

axis=1 #做一个DataFrame出来

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

同样的逻辑,对DataFrame也是一样的。

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

数据变形

1、重塑层次化索引

针对DataFrame,有stack()函数和unstace()函数。stack()将数列的列“旋转”为行,unstack()反之。

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

数据透视表

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化

df表中以“sum”作为数值域,“City_CN”为行,“Province_CN”为列

(6、Pandas数据分组、分割、合并和变形)Python爬虫与数据清洗的进化