pandas之series

 

Series创建方式

  1. 列表创建
  2. 字典创建
  3. 其他创建
  4. 建议存储同一类型数据
# 列表创建
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)

  

  

  

posted @ 2020-05-27 15:40  亚洲哈登  阅读(116)  评论(0编辑  收藏  举报