内容:
·shape、size、index、values
·显式索引.any()
·value值为NaN
·Series的name属性
·Series数组排序
先导入各种包:
import numpy as np
import pandas as pd
from pandas import Series
【shape、size、index、values】
# Series是一个有序的字典对象
# 也可以通过shape、size、index、values等得到Series的属性
arr_series = Series(data=np.random.randint(0, 100, size=8), index=["A", "B", "C", "D", "E", "F", "G", "H"])
print(arr_series, "\n", type(arr_series))
print()
print("各项属性:"
"\narr_series.shape:", arr_series.shape,
"\narr_series.size:", arr_series.size,
"\narr_series.index:", arr_series.index,
"\narr_series.values:", arr_series.values)
print()
运行结果:
【显式索引.any()】
# 查看在Series数组中是否存在”A“和”K“:
# 查看在Series数组中是否存在”A“和”K“:
A_bool = (arr_series.index == "A")
K_bool = (arr_series.index == "K")
print("arr_series.index中是否包含A:", A_bool.any())
print("arr_series.index中是否包含K:", K_bool.any())
print()
运行结果:
只要在arr_series数组的显式索引中,存在"A",那么返回值就是True,反之,返回值就是False。
【NaN】
arr = Series(data={"语文": 99, "数学": 89, "英语": 79}, index=["语文", "数学", "英语", "物理"])
# 当index="物理"时,其value值为NaN:
print(arr)
print()
运行结果:
在定义Series数组时,当用户传入的显式索引在字典的key中找不到匹配项,解释器就会自动给该显式索引对应的value赋值为“NaN”。
# NaN:空值
# 但当arr数据量过于庞大时,肉眼并不能判断出是否存在NaN,这是就需要用到notnull()、isnull()方法
#notnull():不存在返回True,
# isnull():存在返回True
print("arr数组中是否存在NaN:\n", arr.isnull().any(), "\narr数组:\n", arr.isnull())
print()
运行结果:
【name属性】
# Series对象及其实例都有一个name属性
# 因为Series数组是一个一维数组,所以name一般用作二维表格中的列字段而存在
arr.name = "学科"
print(arr)
运行结果:
【Series数组排序】
先生成一个ser数组:
ser = Series(data=np.random.randint(0, 100, size=10),
index=list("abcdefghij"))
print(ser)
print()
运行结果:
(按照值排序)
ser.sort_values()
括号中默认为升序排列,也就是从小到大,当ascending传入参数为False时,为降序排列。也就是从大到小。
# 按照值排序,也就是按照value的大小来排序
# ser.sort_values()括号中默认为升序排列,
print("按照值排序:\n", ser.sort_values(ascending=False))
运行结果:
(按照索引排序)
# 按照索引排序,也就是按照index的大小来排序
# 什么时候会用索引排序呢?
# 当索引为时间时,一般会用到索引排序,观察数据随时间的变化
ser.sort_idnex()
# 按照索引排序,也就是按照index的大小来排序
# 什么时候会用索引排序呢?
# 当索引为时间时,一般会用到索引排序,观察数据随时间的变化
print("按照索引来排序:\n", ser.sort_index(ascending=False))
运行结果:
补:统计data中,每个value出现的频次:
ser_count = Series(data=["tom", "tom", "jom", "hom", "kom", "kom", "kom", "kom", "fom", "fom"])
# 统计出现的次数
# .value_count()方法会统计在data中,每个value出现的频次
print("tom、jom、hom、kom、fom出现的频次依次为:\n", ser_count.value_counts())
运行结果: