如果用 python 的列表和字典来作比较, 那么可以说 Numpy 是列表形式的,没有数值标签,而 Pandas 就是字典形式。Pandas是基于Numpy构建的,让Numpy为中心的应用变得更加简单。
要使用pandas,首先需要了解他主要两个数据结构:Series 和 DataFrame。
一 Series
序列(series)是一个一维数组,只有一个维度(或称作轴)是行(row),在访问序列时,只需要设置一个索引(index)。pandas自动为序列创建了一个从0开始到N-1的序号,称作行的下标,行的位置。可以显式设置index参数,为每行设置标签,pandas把标签称作索引。用户可以通过索引、也可以通过位置来访问Series对象中的元素。Series
的字符串表现形式为:索引在左边,值在右边。
1 | import pandas as pd |
序列的构造函数定义是:
1 | pandas.Series(data=None, index=None, dtype=None, name=None, copy=False) |
- name:序列是一个多行的结构,name是序列的名称
- copy:复制数据,默认值是false
二 、DataFrame
DataFrame是一个表格型的数据结构,它包含有一组有序的列,每列可以是不同的值类型(数值,字符串,布尔值等)。DataFrame既有行索引也有列索引, 它可以被看做由Series组成的大字典。
创建 DataFrame 数据结构
DataFrame 的第一个参数是数值,第二、三参数是索引,索引默认是从 0 开始的数字。index:横轴;columns:纵轴。
还可以指定 type ,以及每个 type 对应的数据创建该数据结构。
1 | dates = pd.date_range('20160101',periods=6) |
DataFrame 方法
1)获取value 值
1 | df['A'] #整个 A 列数据 |
2)describe() 数据的总结
describe() 可以自动答应每个type(column)的计数,平均值,标准差,最小值,最大值以及较低的百分位数和50。默认情况下,较低的百分位数为25,较高的百分位数为75.50百分位数与中位数相同。
1 | print(df2.describe()) |
3)翻转数据 transpose
1 | print(df2.T) |
4)数据排序输出
按照 index 排序:sort_index:
1 | df2.sort_index(axis=1, ascending=False) |
按照数据值(value):sort_values():
1 | DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position='last') |
by
这个参数要求传入一个字符或者是一个字符列表,用来指定按照axis
的中的哪个元素来进行排序。ascending
这个参数的默认值是True
,按照升序排序,当传入False
时,按照降序进行排列。kind
这个参数表示按照什么样算法来进行排序,默认值是quicksort
(快速排序),也可以传入mergesort
(归并排序)或者是heapsort
(堆排序)。na_position
是针对DataFrame
中的空缺值的,默认值是last
表示将空缺值放在排序的最后,也可以传入first
放在最前。