介绍
是什么
pandas是一个强大的Python数据分析的工具包,它是基于NumPy构建的。
关于NumPy,参考这里。
主要功能
- 具备对齐功能的数据结构DataFrame、Series
- 集成时间序列功能
- 提供丰富的数学运算和操作
- 灵活处理缺失数据
安装
pip install pandas
引用
import pandas as pd
Series
Series是一种类似于一维数组的对象,由一组数据和一组与之相关的数据标签(索引)组成。
Series比较像列表(数组)和字典的结合体,有序,同时支持索引和键。
创建
# 默认创建
sr = pd.Series([1,5,-6,9])
""" 默认生成整数索引
0 1
1 5
2 -6
3 9
dtype: int64
"""
# 指定标签创建
pd.Series([1,5,-6,9], index=['a', 'b', 'c', 'd'])
"""
a 1
b 5
c -6
d 9
dtype: int64
"""
# 以字典方式创建
pd.Series({
'a':1, 'b':2})
"""
a 1
b 2
dtype: int64
"""
# 取值数组和索引数组:values属性和index属性
sr = pd.Series([1,5,-6,9])
sr.index
sr.values
"""
RangeIndex(start=0, stop=4, step=1)
array([ 1, 5, -6, 9], dtype=int64)
"""
sr = pd.Series([1,5,-6,9], index=['a', 'b', 'c', 'd'])
sr.index
sr.values
""" 说明,字符串是object
Index(['a', 'b', 'c', 'd'], dtype='object')
array([ 1, 5, -6, 9], dtype=int64)
"""
特性
Series支持NumPy模块的特性(下标)
从ndarray创建Series:Series(arr)
a = np.array([1,2,3,4]) sr = pd.Series(a, index=['a','b','c','d']) """ a 1 b 2 c 3 d 4 dtype: int32 """
与标量运算:sr*2
sr = pd.Series([1,2,3,4], index=['a','b','c','d']) sr * 2 """ a 2 b 4 c 6 d 8 dtype: int32 """
两个Series运算:sr1+sr2
sr1 = pd.Series([1,2,3,4]) sr2 = pd.Series([3,1,3,4]) sr1 + sr2 """ 0 4 1 3 2 6 3 8 dtype: int64 """
索引:sr[0], sr[[1,2,4]]
sr = pd.Series([1,5,-6,9,8], index=['a', 'b', 'c', 'd', 'e']) sr[0] # 1 简单索引 sr[[1,2,4]] # 花式索引 """ b 5 c -6 e 8 dtype: int64 """
切片:sr[0:2](切片依然是视图形式),顾头不顾尾
sr = pd.Series([1,5,-6,9,8], index=['a', 'b', 'c', 'd', 'e']) sr[0:2] """ a 1 b 5 dtype: int64 """
通用函数:np.abs(sr) ,参考num.py
布尔值过滤:sr[sr>0]
统计函数:mean() sum() cumsum()
# cumsum() 返回前缀和 sr = pd.Series([1,2,3,4,5]) sr.cumsum() """ 0 1 1 3 2 6 3 10 4 15 dtype: int64 """
Series支持字典的特性(标签)
从字典创建Series:Series(dic),
in运算:’a’ in sr、for x in sr
sr = pd.Series([1,2,