1.Series常用属性
属性说明values获取数组index获取索引namevalues的nameindex.name索引的name
2.Series常用函数
Series可使用ndarray或dict的差不多所有索引操作和函数,集成了ndarray和dict的优点
函数
说明Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)生成一个SeriesSeries.copy()复制一个Series Series.reindex([x,y,...], fill_value=NaN)
Series.reindex([x,y,...], method=NaN)
Series.reindex(columns=[x,y,...])
重返回一个适应新索引的新对象,将缺失值填充为fill_value
返回适应新索引的新对象,填充方式为method
对列进行重新索引
Series.drop(index)丢弃指定项Series.map(f)应用元素级函数 排序函数
说明Series.sort_index(ascending=True)根据索引返回已排序的新对象Series.order(ascending=True)根据值返回已排序的对象,NaN值在末尾Series.rank(method='average', ascending=True, axis=0)为各组分配一个平均排名df.argmax()
df.argmin()
返回含有最大值的索引位置
返回含有最小值的索引位置
reindex的method选项:
ffill, bfill 向前填充/向后填充
pad, backfill 向前搬运,向后搬运
rank的method选项
'average' 在相等分组中,为各个值分配平均排名
'max','min' 使用整个分组中的最小排名
'first' 按值在原始数据中出现的顺序排名
3.Series常用属性例程
"""
@author: 蔚蓝的天空Tom
Aim:pandas.series常用属性的例程
属性 说明
values 获取数组
index 获取索引
name values的name
index.name 索引的name
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
'Tom',
'Kim',
'Andy'])
s.values
s.index
s.name
s.index.name
s.name =
'Name'
s.index.name =
'ID'
s.name
s.index.name
4.Series常用函数例程
4.1创建Series对象
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---生成Series对象
(1)生成一个Series
Series([x,y,...])Series({'a':x,'b':y,...}, index=param1)
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
'Tom',
'Kim',
'Andy'])
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
data = {
'No.2':
'Tom',
'No.1':
'Kim',
'No.3':
'Andy'}
s = pd.Series(data)
s.index.name =
'ID'
s.name=
'StudentsInfo'
data = {
'No.1':
'Tom',
'No.2':
'Kim',
'No.3':
'Andy'}
ind = [
'No.3',
'No.2',
'No.1']
s = pd.Series(data, index=ind)
data = {
'No.1':
'Tom',
'No.2':
'Kim',
'No.3':
'Andy'}
ind = [
'No.3',
'No.2']
s = pd.Series(data, index=ind)
data = {
'No.1':
'Tom',
'No.2':
'Kim',
'No.3':
'Andy'}
ind = [
'No.2',
'No.1',
'No.99']
s = pd.Series(data, index=ind)
data = {
'No.1':
'Tom',
'No.2':
'Kim',
'No.3':
'Andy'}
ind = [
'No.2',
'No.1',
'No.99']
s = pd.Series(data, index=ind)
ret = pd.isnull(s)
data = {
'No.1':
'Tom',
'No.2':
'Kim',
'No.3':
'Andy'}
ind = [
'No.2',
'No.1',
'No.99']
s = pd.Series(data, index=ind)
ret = pd.notnull(s)
4.2拷贝Series之深拷贝+浅拷贝
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程----拷贝Series,深拷贝和浅拷贝
(2)复制一个Series
Series.copy()
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
cpys = s.copy(deep=
True)
cpys[
'No.1'] =
'xxx'
cpys = s.copy(deep=
False)
cpys[
'No.1'] =
'xxx'
4.3reindex函数
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---series.reindex()适应新索引的新对象,不修改源对象,返回新对象
(3)重返回一个适应新索引的新对象,将缺失值填充为fill_value
Series.reindex([x,y,...], fill_value=NaN)
(4)返回适应新索引的新对象,填充方式为method
Series.reindex([x,y,...], method=NaN)
(5)对列进行重新索引
Series.reindex(columns=[x,y,...])
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
rs = s.reindex([
'No.0',
'No.1',
'No.2',
'No.3',
'No.4'])
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
rs = s.reindex([
'No.0',
'No.1',
'No.2',
'No.3',
'No.4'], fill_value=
'XXX')
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
rs = s.reindex([
'No.0',
'No.1',
'No.4',
'No.5'], method=
'ffill')
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
rs = s.reindex([
'No.0',
'No.1',
'No.4',
'No.5'], method=
'bfill')
4.4drop()方法
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---drop()方法,丢弃指定项,不修改对源对象内容,返回新对象
(6)丢弃指定项
Series.drop(index)
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
'Tom',
'Kim',
'Andy'], index=[
'No.1',
'No.2',
'No.3'])
ds = s.drop(
'No.1')
data = {
'Name':{
'No.1':
'Tom',
'No.2':
'Kim',
'No.3':
'Andy'},
'Age':{
'No.1':
18,
'No.2':
16,
'No.3':
19}}
df = pd.DataFrame(data)
ds = df.drop(
'No.1')
ds = df.drop([
'Age'], axis=
1)
4.5series.map(func)元素函数向量化
"""
@author:蔚蓝的天空Tom
Aim:实现Series常用函数的例程---应用元素级函数series.map(func),不修改源对象,返回新对象
(7)应用元素级函数
Series.map(f)
"""
import math
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
func =
lambda x:x*
2
s = pd.Series([
1,
3,
5], index=[
'No.1',
'No.2',
'No.3'])
ms = s.map(func)
ms = s.map(np.exp)
ms = s.map(math.exp)
4.6 series排序函数
"""
@author: 蔚蓝的天空Tom
Aim:实现Series常用函数的例程---series对象排序方法
Series.sort_index(ascending=True) 根据索引返回已排序的新对象
Series.order(ascending=True) 根据值返回已排序的对象,NaN值在末尾
Series.rank(method='average', ascending=True, axis=0) 为各组分配一个平均排名
df.argmax()
df.argmin()
返回含有最大值的索引位置
返回含有最小值的索引位置
reindex的method选项:
ffill, bfill 向前填充/向后填充
pad, backfill 向前搬运,向后搬运
rank的method选项
'average' 在相等分组中,为各个值分配平均排名
'max','min' 使用整个分组中的最小排名
'first' 按值在原始数据中出现的顺序排名
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
6,
2,
8], index=[
'No.1',
'No.2',
'No.3'])
ss = s.sort_index(ascending=
True)
ss = s.sort_index(ascending=
False)
s = pd.Series([
6,
2,
8], index=[
'No.1',
'No.2',
'No.3'])
so = s.sort_values(ascending=
True)
so = s.sort_values(ascending=
False)
4.7rank()排名方法
"""
@author: 蔚蓝的天空Tom
Aim:实现Series的排名方法例程---series.rank()
Aim:注意区分排名和排序的区别, 排名是按照排序(降序/升序)结果,用排名数值(1~n),替换数值,则每个数值对应一个排名
#排名(Series.rank(method='average', ascending=True))的作用与排序的不同之处是:
#他会把对象的 values 替换成名次(从 1 到 n),问题待解决问题:如何处理平级项,
#method 参数有四个值可选:average, min, max, first来处理评级项问题。
Note:此处排序采用升序排序,然后排名以升序排序的结果进行排名。对降序排序的排名道理都是一样的,此处不予展示了。
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
6,
9,
6,
2])
s.index.name=
'ID'
sr = s.rank()
sr = s.rank(method=
'average')
sr = s.rank(method=
'min')
sr = s.rank(method=
'max')
sr = s.rank(method=
'first')
4.8最大值/最小值的行索引方法argmin()、argmax()
"""
@author: 蔚蓝的天空Tom
Aim:Series中最大(最小)数值的索引方法例程----argmax()、argmin()
df.argmax() 返回含有最大值的索引位置
df.argmin() 返回含有最小值的索引位置
"""
import pandas
as pd
from pandas
import Series
if __name__==
'__main__':
s = pd.Series([
6,
8,
9,
2], index=[
'No.1',
'No.2',
'No.3',
'No.4'])
ind = s.argmax()
ind = s.argmin()
v = ss[ss.argmin()]
v = ss.min()
ss = s.sort_values(ascending=
False)
ind =ss.argmax()
v = ss[ss.argmax()]
v = ss.max()
(end)