pandas.Series( data, index, dtype, copy)
参数 | 描述 |
---|---|
data | 数据,可以是各种形式,如:ndarray,list,constants |
index | 索引,必须是唯一的,散列的,与数据长度相同。默认为np.arange(n) |
dtype | 数据类型 |
copy | 是否复制数据,默认false |
以下代码默认引入pandas和numpy,平台为Anaconda启动的Jupyter:
import pandas as pd
import numpy as np
print(pd.Series())
输出
Series([], dtype: float64)
从ndarray创建时,如果传递索引,索引需要有相同的长度,如果没有传递索引,默认索引是范围(n)。 不传递索引的情况
data = np.array(["a", "b", "c", "d"])
print(pd.Series(data))
输出结果:
0 a
1 b
2 c
3 d
dtype: object
如果传递索引(例子中用了两个相同的索引)
data = np.array(['a','b','c','d'])
s = pd.Series(data,index=[101,103,105,105])
print(s[105])
输出结果
105 c
105 d
dtype: object
此时如果不指定索引,按照顺序取得字典键作为索引,如果指定了索引,索引与标签中对应的数据将会取出,对应不上的用空值表示。 不指定索引:
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data)
print(s)
输出结果:
a 0.0
b 1.0
c 2.0
dtype: float64
指定索引
data = {'a' : 0., 'b' : 1., 'c' : 2.}
s = pd.Series(data,index=['b','c','d','a'])
print(s)
输出结果(以索引顺序为准,对应不上的填充nan:
b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
数据为标量值,必须提供索引,该值将被重复以匹配索引长度。
print(pd.Series(5, index=[0, 1, 2, 3]))
输出结果
0 5
1 5
2 5
3 5
dtype: int64
以下作为例子的Series从以下代码创建:
s = pd.Series([1,2,3,4,5],index = ['a','b','c','d','e'])
跟python访问数组一样的。注意这里的数组是取得“第多少个”,不是例子里的值,一串例子,不多解释:
print(s[3])
print(s[3:])
print(s[:3])
print(s[-3:])
print(s[:-3])
一个索引:
print(s["a"])
多个索引:
print(s[["a", "c"]]