[ Pandas version: 1.0.1 ]
import pandas as pd
一、Pandas对象
Pandas的三个基本数据结构:Series, DataFrame, Index
(一) Pandas的Series对象
Pandas的Series对象是一个带索引数据构成的一维数组。
通过values
属性和index
属性获取数据。values属性返回的结果与NumPy数组类似。
data = pd.Series([0.25, 0.5, 0.75, 1.0])
#0 0.25
#1 0.50
#2 0.75
#3 1.00
#dtype: float64
data.values #输出:array([0.25, 0.5 , 0.75, 1. ])
data.index #输出:RangeIndex(start=0, stop=4, step=1)
data[1]
data[1:3]
#1 0.50
#2 0.75
#dtype: float64
- Series是通用的NumPy数组
NumPy数组通过隐式定义的整数索引获取数值。
Pandas的Series对象通过显式定义的索引与数值关联,其索引可以是任意类型,可使用不连续或不按顺序的索引。
data = pd.Series([0.25, 0.5, 0.75, 1.0], index=['a', 'b', 'c', 'd'])
data = pd.Series([0.25, 0.5, 0.75, 1.0], index=[2, 5, 3, 7])
- Series是特殊的字典
Python字典是一种将任意键映射到一组任意值的数据结构。
Series对象是一直将类型键映射到一组类型值的数据结构,支持字典不具有的功能,如切片。
population_dict = {
'California': 38332521, 'Texas': 26448193, 'New York': 19651127}
population = pd.Series(population_dict)
# California 38332521
# Texas 26448193
# New York 19651127
# dtype: int64
population['California']
# 切片
population['California':'Texas']
- 创建Series对象:
pd.Series(data, index=index)
- 其中
index
是可选参数,data
参数支持多种数据类型。 - Series对象只会保留显式定义的键值对。
- 每种形式都可以通过显示指定索引筛选需要的结果
# 1. data是列表或NumPy数组,这时index默认值为整数序列
pd.Series([2, 4, 6])
# 2. data是标量,创建Series对象时会重复填充到每个索引上
pd.Series(5, index=[100, 200, 300])
# 3. data是字典,index默认是排序的字典键
pd.Series({
2:'a', 1:'b', 3:'c'})
# 每种形式都可以通过显示指定索引筛选需要的结果
pd.Series({
2:'a', 1:'b', 3:'c'}, index=[3, 2])
#3 c
#2 a
#dtype: object
(二) Pandas的DataFrame对象
- DataFrame是通用的NumPy数组
DataFrame可以看做是一种有行和列索引的二维数组,也可看作是有序排列(有共同索引)的若干Series对象。
area_dict = {
'California': 423967, 'Texas': 695662, 'New York': 141297}
area = pd.Series(area_dict)
states = pd.DataFrame({
'population': population, 'area': area})
states
# population area
# California