Data Wrangling: Join, Combine and Reshape

Hierarchical Indexing

Hierarchical indexing is an important feature of pandas that enables you to have multiple (two or more) index levels on an axis.

利用python进行数据分析-第八章笔记

需要注意的一点是在使用 loc 方法获取数据时,两个维度分别是外部 index 和内部 index:

data.loc['a',2]

可以使用 unstack 方法得到一个分层 Series 的 DataFrame, stack 方法由 DataFrame 得到一个 Series:

data.unstack()

DataFrame 也支持分层 index 和 columns,index 和 columns 的列表序号越小越在外面,也可以对每一个 index 或者 column 的 name 属性进行赋值:

利用python进行数据分析-第八章笔记

pandas 中的 MultiIndex Object 是支持分层 index 或 columns 的对象:

multindex = pd.MultiIndex.from_arrays([['Ohio','Ohio','Colorado'],['Green','Red','Green']],names=['state','color'])
df.columns = multindex

Reordering and Sorting Levels

swaplevel 可以交换两个分层的 index;
sort_index 可以选择在某一层上对 index 进行排序。

Summary Statistics by Level

可以在某一个 level 上进行数据统计,书中拿 sum 来举例。主要涉及的参数是 level 和 axis。

Indexing with a DataFrame's columns

set_index 可以把 columns 当做 DataFrame 的 index,返回一个新的 DataFrame:

利用python进行数据分析-第八章笔记

reset_index 可以把分层 index 都还原到 columns 上。

利用python进行数据分析-第八章笔记

Combining and Merging Datasets

Database-Style DataFrame Joins

Merging on Index

主要依靠 merge 方法进行处理。

merge 的 pandas 文档

Concatenating Along an Axis

concat 的 pandas 文档

Combining Data with Overlap

combine_first 的 pandas 文档

这几部分基本是在介绍这几个方法的用法,pandas 文档里介绍的很详细,这里就不再赘述了。

Reshaping and Pivoting

Reshaping with Hierarchical Indexing

stack 的 pandas 文档

unstack 的 pandas 文档

[pivot 的 pandas 文档]

这部分主要是返回一个新的 DataFrame,其 index 和 columns 都是原 DataFrame 的某些 value:

看了这几章之后,对 pandas 有了大致的了解,其实这本书最主要的作用是让读者知道在遇到某些情况时如何处理,而不是遇到问题才去找各种博客,而对于具体方法的使用,没有比 pandas 文档更好的选择了。

因为以后的方向可能不在数据分析方向,而且数模竞赛也结束了,这几章的学习也确实给我带来了收获。所以,就到这里吧,以后有缘的话还会捡回来看,下面要提升 C++ 的深度了,顺便把算法的坑填了,冲冲冲!

(以上是我咕咕咕的借口hhh)

相关文章: