Series创建方式
- 列表创建
- 字典创建
- 其他创建
- 建议存储同一类型数据
# 列表创建 a = pd.Series([2,3,4,5,6],index=[1,2,3,4,5])
# 索引就是字典的键 d = pd.Series({ 'name':'张三', 'age': 18, 'gender': True })
# 标量创建 pd.Series(5) pd.Series(5,index=[1,2,3,4,5])
# numpy函数创建 pd.Series( np.arange(4), index=np.arange(9,5,-1) )
series的name,index
x = pd.Series( np.arange(4), index=np.arange(9,5,-1), name='pandas测试' ) x.name = 'pandas名称' x.index.name = '索引名称'
series的查询方法
查询 S.dtypes:Series整体的数据类型 S.shape:Series的形状(每个维度的值用元组表示) len(S):Series里面的元素个数部分同上 S.count():Series里面非空的元素个数 S.value_counts():Series里面非空元素出现的次输,自动降序 S.unique():Series不重复的元素
S.sort_values(ascending=False)
查询值和索引
一个Series数据是由2个ndarray(相当于列表)数组组成地 索引&值
查询值
- 根据索引查询值
- 索引查询
- 切片查询
根据条件反查索引
- 布尔查询
class1 = pd.Series([95,25,59,90,61], index=['ming','hua','hong','huang','hui'])
# 查询值 class1.values # 查询索引,顶层索引是数组array class1.index class1.index.values class1.index.values[0] # 查询单值 class1.hong class1[2] #自定义索引 class1['hong'] #默认索引 # 查询多值 class1[['hong','hui']] class1[[1,4]] # 切片查询 class1[:2] #默认索引,前包后不包 class1['hong':'hui'] #自定义索引没有顺序,难以确定索引前后的值,都包括 # 布尔查询,不及格学生的姓名 class1[[False,True,True,False,False]] #条件自己生成 class1<60 class1[class1<60] #调用生成的查询条件
修改索引&值
pd_rename = class1.rename({'ming':'小明'}) # 没有修改原来的值,增加了新的dtype并更改索引名字 class1.index.values[0]='aaaa' #修改了原来的索引 class1['hua']=15 class1[['ming','hua']] = [98,12]
Series数据操作
e = pd.Series([3,5,1,8,4,2]) # 查询 e[1] # 索引查询 e[[1,3,4]] e[1:3] e[e<5] e.index e.values # 修改 e[4] = 40 # 增加 e[6]=100 e['name'] = '张三' # 数据类型变为object,不同数据类型强制统一的时候,只能保存占用内存最大的数据类型(bool值有差异) # 删除,删除功能等同于查询数据时跳过被删除数据 e.drop('name',inplace=True)