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)