黑马程序员技术交流社区

标题: 【上海校区】pandas学习教程(2):pandas系列 [打印本页]

作者: Mr.TR    时间: 2018-6-9 18:13
标题: 【上海校区】pandas学习教程(2):pandas系列
本帖最后由 Mr.TR 于 2018-6-9 18:22 编辑

系列(Series)是能够保存任何类型的数据(整数,字符串,浮点数,Python对象等)的一维标记数组。轴标签统称为索引。
Series对象是使用pandas的基础。
Series有如下特点:


Pandas系列可以使用以下构造函数创建
[Python] 纯文本查看 复制代码
pandas.Series( data, index, dtype, copy)

构造函数的参数如下:
编号 参数 描述
1 data数据采取各种形式,如:ndarray,list,constants
2 index索引值必须是唯一的和散列的,与数据的长度相同。 默认np.array(n)如果没有索引被传递。
3 dtypedtype用于数据类型。如果没有,将推断数据类型
4 copy 复制数据,默认为false

可以使用各种输入创建一个系列,如

Series对象的操作

1,创建
   
[Python] 纯文本查看 复制代码
import pandas as pd
s = pd.Series()
print(s)

    执行上面代码,结果如下:
   
   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print(s)

    执行上面代码,结果如下:
   
    这里没有传递任何索引,因此默认情况下,它分配了从 0 到 len(data)-1 的索引,即:0到3

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data,index=[100,101,102,103])
print(s)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print(s)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print(s)
    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
s = pd.Series(5, index=[0, 1, 2, 3])
print(s)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
g_values = np.arange(5)
g_index = np.arange(9, 4, -1)
g = pd.Series(g_values, index = g_index)
print(g)
    执行上面代码,返回结果如下:
   

   
[Python] 纯文本查看 复制代码
h = pd.Series(range(10))
print(h)

    执行上面代码,结果如下:
   

2,查询
   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print(s)
print('**'*10)
print(s.values)
print('**'*10)
print(s.index)
print('**'*10)
print(s.index[2])
print('**'*10)
print(s.index.values)
    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print(s)
print('**'*10)
# 查询单值
print(s[1])  # 位置索引,默认,自动生成,和自定义索引并存
print('**'*10)
print(s['a'])  # 标签索引,自定义索引
print('**'*10)
print(s.d)  # 方法调用
print('**'*10)
# 查询多值
print(s[[0,3]])
print('**'*10)
print(s[['a', 'd']])

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np
data = {'a' : 0., 'b' : 1., 'c' : 2., 'f': 12., 'q': 3.4, 'y': 5.6}
s = pd.Series(data,index=['b','c','d','a','f','q','y','e'])
print(s)
print('**'*10)
print(s[:4])  # 位置切片,默认索引,左闭右开
print('**'*10)
print(s[:'q'])  # 标签切片,自定义索引, 注意:两边都闭区间(因为使用标签索引时通常不知道标签顺序,很难确定结束前一个标签是什么)
print('**'*10)
print(s['f':])
print('**'*10)
print(s[::2])
print('**'*10)
print(s[::-1])  #步长-1,逆序

    执行上面代码,结果如下:
   
   

   
   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
print(s>=60)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
print(s['hua']>60)
print(s['ming']>60)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
print(s+100)  # 标量运算

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
print(np.median(s))  # 应用函数 , 获取中位数
print(s.median())  # 方法调用的写法

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
res = 'hua' in s
print(res)
print('**'*10)
print(s.get('bai', 80))
print(s.get('hei', 80))

    执行上面代码,结果如下:
   
3,修改
   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
s['ming'] = 0
print(s)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
s['ming', 'hua'] = 0
print(s)
print('**'*10)
s['ming', 'hua'] = [30, 40]
print(s)

    执行上面代码,结果如下:
   

   
[Python] 纯文本查看 复制代码
import pandas as pd
import numpy as np

s = pd.Series([100,25,59,90,61],index=['ming','hua','hong','huang','bai'])
print(s)
print('**'*10)
s.index = ['xiaoming','xiaohua','xiaohong','xiaohuang','xiaobai']  # 索引修改
print(s)
print('**'*10)
s.index.values[2] = 'laoli'
print(s)

    执行上面代码,结果如下:
   





作者: baby14    时间: 2018-6-10 08:51
多谢分享
作者: 吴琼老师    时间: 2018-7-5 16:47





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2