Python笔记----Series

import pandas as pd
import numpy as np

'''
Pandas的数据结构:

Series
Series是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据。轴标签统称为索引
调用pd.series函数即可创建Series
例如:s = pd.Series(data, index=index)
其中data支持Python字典,多维数组和标量值,index是轴标签列表
当data是多维数组时,index长度必须与data长度一致。没有指定index参数时,默认为数值型索引,即[0, len(data)-1]
'''

# np.random.randn(d0,d1,d2……dn) 
# 1)当函数括号内没有参数时,则返回一个浮点数; 
# 2)当函数括号内有一个参数时,则返回秩为1的数组,不能表示向量和矩阵; 
# 3)当函数括号内有两个及以上参数时,则返回对应维度的数组,能表示向量或矩阵; 
# 4)np.random.standard_normal()函数与np.random.randn()类似,但是np.random.standard_normal()的输入参数为元组(tuple). 
# 5)np.random.randn()的输入通常为整数,但是如果为浮点数,则会自动直接截断转换为整数。

# numpy.random.rand(d0,d1,…,dn)
# rand函数根据给定维度生成[0,1)之间的数据,包含0,不包含1
# dn表格每个维度
# 返回值为指定维度的array
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
# print(s)
# print(s.index)
s = pd.Series(np.random.randn(5))
# print(s)

# Pandas 的索引值可以重复。

'''
当data为字典时,当未设置index参数时,Series按字典的插入顺序排序索引
'''

# Series 可以用字典实例化
dic = {'a': 2, 'b': 1, 'c': 3, 'd': 5, 'e': 9}
s = pd.Series(dic)
# print(s)

# Pandas用NaN表示缺失数据
# print(pd.Series(dic, index=['b', 'a', 'c', 'd']))

'''
当data为标量值时,必须提供索引,Series按索引长度重复该标量值。
'''
# 什么是标量值?--------------------标量值代表一个数据单元或一个简单值
# print(pd.Series(5., ['b', 'a', 'c', 'd']))

'''
Series类似多维数组
Series操作与ndarray类似,支持大多数NumPy函数,还支持索引切片
'''

# print(s[0])
# print(s[:3])
# median()函数代表中位数
# print(s[s > s.median()])

'''
Series.array一般是扩展数组。简单说,扩展数组是把N个numpy.ndarray包在一起的打包器。
Pandas知道怎么把扩展数组存储到Series或DataFrame的列里。
'''
# Series.array用于提取Series数组
# 执行不用索引的操作时,如禁用自动对齐,访问数组非常有用。
# print(s.array)

# Series 只是类似于多维数组,提取真正的多维数组,要用Series.to_numpy()
# print(s.to_numpy())

'''
Series 类似固定大小的字典,可以用索引标签提取值或设置值。
'''
# print(s['a'])
# s['b'] = 12
# print(s)
# print('c' in s)
# print('e' in s)

# 使用get()方法可以提取Series里没有的标签,返回值为None,或可以指定返回值
# print(s.get('e'))
# np.nan为not a number
# print(s.get('e', np.nan))

'''
矢量操作与对齐 Series 标签
Series 和 NumPy 数组一样,都不用循环每个值,而且 Series 支持大多数 NumPy 多维数组的方法。
'''
# print(s + s)
# print(s * 3)

# Series 和多维数组的主要区别在于, Series 之间的操作会自动基于标签对齐数据。因此,不用顾及执行计算操作的 Series 是否有相同的标签。
# print(s[1:] + s[:-1])

# Series还支持name属性
# 一般情况下,Series会自动分配name,特别是提取一维 DataFrame 切片时
s = pd.Series(np.random.randn(5), name='something')
# print(s)
# print(s.name)

# 也可以使用rename方法重命名
s2 = s.rename('lsw')
print(s2.name)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值