数据分析之Series对象的创建

pandas官网

pandas中的核心对象是SeriesDataFrame

In[2]:

1
2
import numpy as np
import pandas as pd

Series

Seriespandas中暴露给我们使用的基本对象,它是由相同元素类型构成的一维数据结构,同时具有列表和字典的属性(字典的属性由索引赋予)。

  • Series:有序,有索引
  • list: 有序,无索引
  • dict: 无序,有索引

预览

In [3]:

1
2
3
4
data = [1,2,3]
index = ['a','b','c']
s = pd.Series(data=data, index=index, name = 'sss')
s

Out[3]:

1
2
3
4
a 1
b 2
c 3
Name: sss, dtype: int64

In [4]:

s.index # 四个属性之一:索引

Out[4]:

Index(['a', 'b', 'c'], dtype='object')


In [5]:

s.name # 四个属性之二:名字,

Out[5]:

'sss'


In [6]:

s.values # 四个属性之三:值

Out[6]:

array([1, 2, 3], dtype=int64)


In [7]:

s.dtype # 四个属性之四:元素类型

Out[7]:

dtype('int64')


创建

pd.Series(data=None, index=None, name = None)

  • data:多种类型,见下面具体介绍
  • index:索引
  • name:对data的说明,用的不多,一般在和DataFrame、Index互相转换时才需要。

data无索引

  • 如果 datandarray(1D)list(1D),那么其缺少 Series 需要的索引信息;
  • 如果提供 index,则必须和data长度相同;
  • 如果不提供 index,那么其将生成默认数值索引 range(0, data.shape[0])

In [8]:

1
2
3
4
5
# data = [1,2,3]
data1 = np.array([1,2,3])
index1 = ['a','b','c']
s = pd.Series(data = data1, index = index1)
s

Out[8]:

1
2
3
4
a 1
b 2
c 3
dtype: int32

data有索引

  • 如果 dataSeriesdict ,那么其已经提供了 Series 需要的索引信息,所以 index 项是不需要提供的;
  • 如果额外提供了 index 项,那么其将对当前构建的Series进行 重索引(增删)(等同于reindex操作)。

In [9]:

1
2
3
4
5
# data = pd.Series([a,b,c], index = ['a','b','c'] )
data2 = { 'a':1, 'b':2,'c':3 }
index2 = ['a','b','d']
s = pd.Series(data = data2, index = index2)
s

Out[9]:

1
2
3
4
a 1.0
b 2.0
d NaN
dtype: float64

如上,index项用于从当前已有索引中匹配出相同的行,如果当前索引缺失给定的索引,则填充NaN(NaN:not a number为pandas缺失值标记)

当前网速较慢或者你使用的浏览器不支持博客特定功能,请尝试刷新或换用Chrome、Firefox等现代浏览器