- 1.创建一个Series数据
- 1.1 查看Series数据
- 1.2 Series数据加减及NaN数据
- 1.3 Series的命名
- 1.4 Series数据的转置
引入Pandas包, import pandas as pd
Series属于Pands的一维数据 1.创建一个Series数据
语法:pd.Series(列表)
obj = pd.Series([1, 2, 3, 4, 5]) # 结果 0 1 1 2 2 3 3 4 4 5 dtype: int64
参数一:dypte = np.数据类型
举例:pd.Series(obj, dtypte = np.int64)
参数二:name = 命名;默认为None
举例:pd.Series(obj, name= 'demo')
参数三:index = [list];将Series数据进行排序,默认为从0开始
举例:pd.Series(obj, index=[4, 3, 2, 1, 0])
用字典构建Series数据,字典的键就是Series的索索引index
语法:pd.Series({dict})
举例:
obj1 = pd.Series({'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000})
obj1
Ohio 35000
Texas 71000
Oregon 16000
Utah 5000
dtype: int64
1.1 查看Series数据
查看Series的键(index):数据.index
obj.index RangeIndex(start=0, stop=5, step=1)
RangeIndex(start=0, stop=5, step=1),代表从0开始—5结束,数之间的间隔是1
查看Series的值:数据.values
obj.values array([1, 2, 3, 4, 5], dtype=int64)1.2 Series数据加减及NaN数据
键(index)对应的数据会进行相加,若没有对应的数据,则会生成一个NaN数据。
obj1 = pd.Series({'Ohio': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000})
obj2 = pd.Series({'Ohios': 35000, 'Texas': 71000, 'Oregon': 16000, 'Utah': 5000})
obj1: Ohio 35000 Texas 71000 Oregon 16000 Utah 5000 dtype: int64 obj2: Ohios 35000 Texas 71000 Oregon 16000 Utah 5000 dtype: int64
两个数据不一样的键是Ohio和Ohios
obj3 = obj1 + obj2 obj3 Ohio NaN Ohios NaN Oregon 32000.0 Texas 142000.0 Utah 10000.0 dtype: float64
判断矩阵中是否含有NaN数据
- 判断是NaN数据-data.isNull()
- 判断不是NaN数据-data.notNull()
obj3.notnull() Ohio False Ohios False Oregon True Texas True Utah True dtype: bool
两种方法均会生成一个Bool型的Series数据,键(index)对应数据data中的键
1.3 Series的命名给键命名:data.index.name = 'index_name'
给Series命名:data.name = 'obj_name'
原来的obj3:
Ohio NaN Ohios NaN Oregon 32000.0 Texas 142000.0 Utah 10000.0 dtype: float64
给键命名:
obj3.index.name = 'index_name' index_name Ohio NaN Ohios NaN Oregon 32000.0 Texas 142000.0 Utah 10000.0 dtype: float64
给obj3命名:
obj3.name = 'obj_name' index_name Ohio NaN Ohios NaN Oregon 32000.0 Texas 142000.0 Utah 10000.0 Name: obj_name, dtype: float641.4 Series数据的转置
语法:obj.reindex([list], method)
参数一为要重置的索引列表;
若重置后的数据含有空值,则可以加入第二参数
method = ’ffill‘ 用前面的数来补充NaN值
method = 'bfill' 用后面的数来补充NaN值
注意:进行Method时,新索引和原索引必须是数字类型的数据
obj = pd.Series([4.5, 7.2, -5.3, 3.6], index=['d', 'b', 'a', 'c']) d 4.5 b 7.2 a -5.3 c 3.6 dtype: float64
普通的转置:
obj2 = obj.reindex(['a','b','c','d','e']) a -5.3 b 7.2 c 3.6 d 4.5 e NaN dtype: float64
加了参数的转置:
得先把index转为数字
obj2.index = [2, 4, 6, 8, 10] 2 -5.3 4 7.2 6 3.6 8 4.5 10 NaN dtype: float64
method = ‘ffill’,
数字1行索引之前在原索引中没有索引数据了所以仍然是NaN
obj3 = obj2.reindex([1, 2, 3, 4, 5], method = 'ffill') 1 NaN 2 -5.3 3 -5.3 4 7.2 5 7.2 dtype: float64
method = ‘bfill’
数字5行索引在原索引中后一个数字6索引中有值,所以将数字6索引的value引入
obj4 = obj2.reindex([1, 2, 3, 4, 5], method = 'bfill') 1 -5.3 2 -5.3 3 7.2 4 7.2 5 3.6 dtype: float64



