Pandas是一个强大的分析结构化数据的工具集,基于NumPy构建,提供了
高级数据结构和
数据操作工具,它是使Python成为强大而高效的数据分析环境的重要因素之一
(1) 一个强大的分析和操作大型结构化数据集所需的工具集
(2) 基础是NumPy,提供了高性能矩阵的运算
(3) 提供了大量能够快速便捷地处理数据的函数和方法
(4)应用于数据挖掘,数据分析
(5)提供数据清洗功能
2. Pandas的索引操作
2.1 索引对象Index
- Series和DataFrame中的索引都是Index对象
import numpy as np
import pandas as pd
ps=pd.Series(range(5),index=['a','b','c','d','e'])
type(ps.index)
pd1 = pd.DataFrame(np.arange(9).reshape(3,3),index=['a','b','c'],columns=['A','B','C'])
print(type(pd1.index))
print(type(pd1.columns))
- 索引对象不可变,保证了数据的安全
pd1.index[1]=2
- 常见的Index种类
index种类 | 说明 |
---|
Index | 索引 | Int64Index | 整数索引 | MultiIndex | 层级索引 | DatatimeIndex | 时间戳类型 |
2.2 索引的一些基本操作
2.2.1 重新索引
ps2 = ps.reindex(['a','b','c','d','e','f'])
ps2
pd2 = pd1.reindex(['a','b','c','d'])
pd2
pd3 = pd1.reindex(columns=['C','B','A'])
pd3
2.2.2 增
- Serise
ps['g'] = 9
s1 = pd.Series({'f':999})
ps3 = ps.append(s1)
ps3
- DataFrame
pd1[4] = 9
pd1[4] = 9
pd1
pd1.insert(0,'E',[9,99,999])
pd1
pd1.loc['d'] = [1,1,1,1,1]
pd1
row = {'E':6,'A':6,'B':6,'C':6,4:6}
pd5 = pd1.append(row,ignore_index=True)
pd5
2.2.3 删
- 在原有数据结构上删除
del ps['b']
ps
del pd1['E']
2.不改变原有数据,生成新的对象
ps6 = ps.drop('g')
ps6
ps1.drop(['c','d'])
pd1.drop('a')
pd1.drop(['a','d'])
pd1.drop('A',axis=1)
pd1.drop('A',axis='columns')
ps.drop('g',inplace=True)
2.2.4 改
ps['a']=999
ps[0] = 888
pd1['A'] = 9
pd1['A'] = [9,10,11]
pd1
pd1.A = 6
pd1.loc['a'] = 777
pd1
pd1.loc['a','A'] = 1000
2.2.5 查
ps['a']
ps[0]
ps[1:4]
ps['b':'d']
ps[['b','e']]
ps[[0,2]]
ps[ps>2]
pd1['A']
pd1[['A','C']]
pd1['A']['a']
pd1[:2]
2.3 高级索引
2.3.1 loc标签索引
ps['a':'c']
ps.loc['a':'c']
pd1.loc['a':'b','A']
pd1.loc['a':'b','A':'C']
2.3.2 iloc位置索引
ps[1:3]
ps.iloc[1:3]
pd1.iloc[0:2,0]
pd1.iloc[0:2,0:3]
2.3.3 ix标签与位置混合索引
ps.ix[1:3]
ps.ix['b':'c']
pd1.ix[0:2,0]
|