此网页翻译整理自《python data science handbook》,基于python3
Panda是基于Numpy的一个库,其数据类型之一 DataFrame 非常的高效。 DataFrame是具有行名和列名的多维数组。所有的数据都具有相应的label,且允许数据缺失。其另外一种数据类型为 Series。
3.1 安装与使用Pandas
- 安装Pandas之前需要安装Numpy,具体安装可以使用homebrew,pip,conda
- Pandas 安装之后使用
import pandas as pd
pd.__version__ # 输出Pandas的版本
help(pd) # 查看pandas的document
- 注意之后代码中的pandas统一由pd代替
3.2 介绍Pandas对象
Pandas对象是Numpy的增强版,其数据可以由行名和列名得到,而不是仅仅使用整数的索引。
import numpy as np
import pandas as pd
3.2.1 Series对象
population_dict = {'California': 38332521, 'Texas': 26448193, 'New York': 19651127, 'Florida': 19552860, 'Illinois': 12882135}
population = pd.Series(population_dict)
area_dict = {'California': 423967, 'Texas': 695662, 'New York': 141297, 'Florida': 170312, 'Illinois': 149995}
area = pd.Series(area_dict)
states = pd.DataFrame({'population': population, 'area': area})
- 默认生成
data = pd.Series([0.25, 0.5, 0.75, 1.0])
data.values # 输出 array([ 0.25, 0.5, 0.75, 1.])
data.index # 输出 RangeIndex(start=0, stop=4, step=1)
data[1:3] # 输出1 0.5, 2 0.75, dtype: float64
- 设定特定的index
data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd']) # 输出a 0.25, b 0.50 ....
data = pd.Series([0.25, 0.5, 0.75, 1.0], index=[2, 5, 3, 7]) #输出 2 0.25, 5 0.50
- 由dict转换
population_dict = {'California': 38332521, 'Texas': 26448193, 'New York': 19651127, 'Florida': 19552860, 'Illinois': 12882135}
population = pd.Series(population_dict)
population['California'] # 输出38332521
population['California':'Illinois'] #输出 38332521, 19552860, 12882135 索引输出是按照字母排列的顺序进行
- 通过设定index的值,选取Series中部分数值
pd.Series({2:'a', 1:'b', 3:'c'}, index=[3, 2])
3.2.2 DataFrame 对象
DataFrame可以被认为是一组Series对象构成的(每一个Series代表一列),但是Series的长度是等长的ÿ