pandas库是一个基于numpy、专门为数据分析而设计的库,该库不仅提供了大量模块及一些标准的数据模型,而且提供了高效操作数据集的数据结构,被广泛地应用到众多领域中.
1.Series
# Series类对象的结构类似一维数组,主要由数据和索引组成,数据可以是任意类型
# pandas.Series(data(传入数据)=None, index(传入索引)=None, dtype(数据类型)=None, name(Series类对象名称)=None, copy(复制数据)=False)
import pandas as pd
# 根据列表创建Series类对象
ser_obj = pd.Series(['Python', 'Java', 'PHP'])
print(ser_obj)
'''输出结果
0 Python
1 Java
2 PHP
dtype: object
'''
# 创建Series类对象,指定索引
ser_obj_01 = pd.Series(['Python', 'Java', 'PHP'], index=['one', 'two', 'three'])
print(ser_obj_01)
'''输出结果
one Python
two Java
three PHP
dtype: object
'''
data = {'one': 'Python', 'two': 'Java', 'three': 'PHP'}
ser_obj_02 = pd.Series(data) # 根据字典创建Series类对象
'''输出结果
one Python
two Java
three PHP
dtype: object
'''
# 时间序列(动态序列)是指将同一统计指标的数值按其发生的时间先后顺序排列成的数列
# Series类对象或DataFrame类对象可以指定索引为时间索引,生成一个时间序列,代码如下:
import datetime
# 创建时间索引
date_index = pd.to_datetime(['20210820', '20210828', '20210908'])
print(
date_index)
'''输出结果
print(ser_obj_02) # DatetimeIndex(['2021-08-20', '2021-08-28', '2021-09-08'], dtype='datetime64[ns]', freq=None)
'''
# 创建Series类对象,指定索引为时间索引
date_ser = pd.Series([11, 22, 33], index=date_index)
print(date_ser)
'''输出结果
2021-08-20 11
2021-08-28 22
2021-09-08 33
dtype: int64
'''
2.DateFrame
# DateFrame类对象结构类似二维数组或表格,DateFrame也由索引和数据组成,但该对象有行索引和列索引
# pd.DateFrame(data=None, index=None, columns=None, dtype=None, copy=Flase)
import pandas as pd
import numpy as np
# 创建二维数组
demo_arr = np.array([['a', 'b', 'c'], ['d', 'e', 'f']])
df_obj = pd.DataFrame(demo_arr) # 根据二维数组创建DateFrame类对象
print(df_obj)
'''输出结果
0 1 2
0 a b c
1 d e f
'''
# 创建DateFrame类对象,同时指定行索引和列索引
df_obj_01 = pd.DataFrame(demo_arr, index=['row_01', 'row_02'], columns=['col_01', 'col_02', 'col_03'])
print(df_obj_01)
'''输出结果
col_01 col_02 col_03
row_01 a b c
row_02 d e f
'''
# from_tuples(),根据元组创建分层索引
# from_arrays(),根据数组创建分层索引
# from_product(),从集合的笛卡尔积中创建分层索引
# from_frame(),根据DataFrame类对象创建分层索引
# 以from_tuples()方法为例,创建双层索引的DataFrame类对象
tuple_clo = [('a', 0), ('a', 1), ('b', 2), ('b', 2)]
tuple_row = [('a', 0), ('a', 1), ('b', 2), ('b', 2)]
multi_index_col = pd.MultiIndex.from_tuples(tuples=tuple_clo)
multi_index_row = pd.MultiIndex.from_tuples(tuples=tuple_row)
data = [['A', 'B', 'C', 'D'], ['E', 'F', 'G', 'H'], ['I', 'J', 'K', 'L'], ['M', &