Pandas是基于NumPy 的一种工具,为了解决数据分析任务而创建
- 不管数据的来源,使用Pandas都可以完成数据处理和分析的5个典型步骤:加载,准备,操作,模型和分析
- Pandas是通过代码来实现Excel和数据库的基本功能,并提供了更丰富的分析函数
- Python Pandas用于广泛的领域,包括金融,经济,统计,分析等学术和商业领域
Series 是类似于数组的一维数据结构,由**索引(index)和值(values)**两个相关联的数组组成
索引:每个元素的名称,可以是数字,也可以是字符串
下图两个Series结构,index分别是数字和字符串
创建Series结构pandas.Series(data=None, index=None, dtype=None, name=None, copy=False, fastpath=False) #data:Python的列表或Numpy的一维ndarray对象 #index:列表,若省略则自动生成0~n-1的数字索引 #dtype:为储存数据的类型 #name:为列表的名字
例子
s = pd.Series(data = [100, 'a', {'dic1':5}],
index = pd.Index(['id1', 20, 'third'], name='my_idx'),
dtype = 'object',
name = 'my_name')
s
my_idx
id1 100
20 a
third {'dic1': 5}
Name: my_name, dtype: object
import pandas as pd data = [187,190,185,178,185] index = [13,14,7,2,9] player = pd.Series(data, index) player
13 187 14 190 7 185 2 178 9 185 dtype: int64
data = [187,190,185,178,185] player = pd.Series(data) player #默认为数字索引
0 187 1 190 2 185 3 178 4 185 dtype: int64
对于Series的基础属性,可以通过**.属性名**直接访问
player.values array([187, 190, 185, 178, 185], dtype=int64)
player.index RangeIndex(start=0, stop=5, step=1)Series向量化的字符串函数
面向Series中的元素可以跳过空缺值,避免应用失败通过Series的str属性进行调用
data = ['peter', 'Paul', None, 'MARY', 'gUIDO'] [s.title() for s in data] AttributeError: 'NoneType' object has no attribute 'title'
data = ['peter', 'Paul', None, 'MARY', 'gUIDO'] names = pd.Series(data) names.str.title() ''' 0 Peter 1 Paul 2 None 3 Mary 4 Guido dtype: object '''
Tab补全查看Pandas 支持的所有向量化字符串方法
Series.str.contains(pat, case=True, flags=0, na=None, regex=True)
data = ['dave@google.com', 'steve@gmail.com','rob@mail.com',None] emails = pd.Series(data) emails ''' 0 dave@google.com 1 steve@gmail.com 2 rob@mail.com 3 None dtype: object '''
例子
找出gmail的电子邮箱
emails.str.contains('gmail')
'''
0 False
1 True
2 False
3 None
dtype: object'''
Series统计计数排序
Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)
obj = pd.Series(['a','c','d','b','a','b','b','c','c']) obj.value_counts() ''' c 3#值xiang'to b 3 a 2 d 1 dtype: int64 '''
ins=None, dropna=True)``
obj = pd.Series(['a','c','d','b','a','b','b','c','c']) obj.value_counts() ''' c 3#值xiang'to b 3 a 2 d 1 dtype: int64 '''



