文章目录
- 一、Series的创建
- 由ndarray创建Series
- 由python字典创建Series
- 由常量创建Series
- 二、Series的取值
- 三、Series的属性
- 四、Series的方法
- 1、loc与iloc方法
- 2、tolist()方法
- 3、items()方法
- 4、keys()方法
- 5、min()和max()方法
- 6、to_numpy()方法
- 7、get()方法
- 8、rename()方法
- 9、sort_values()和sort_index()
- 10、head()和tail()方法
一、Series的创建
pandas的导入
import pandas as pd
创建一个Series
s = pd.Series(data=data, index=index, name=name)
此处的data可以是以下数据类型:
- 一个python字典
- ndarray
- 一个常量(比如:5)
由ndarray创建Series
import numpy as np
import pandas as pd
s = pd.Series(data = np.random.randn(5))
print(s)
输出结果:
0 -0.238572
1 1.585234
2 -1.311796
3 -0.072632
4 -0.913131
dtype: float64
当没有指定index时,索引默认使用数字0,1,2,……
若指定index,则以指定的index内容作为索引,如
import numpy as np
import pandas as pd
s = pd.Series(data=np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
print(s)
输出结果:
a -0.557177
b 0.541612
c 1.520322
d 1.089772
e -0.145101
dtype: float64
注: Series中的data和index的长度必须一致。
由python字典创建Series
import pandas as pd
s = pd.Series(data={'b': 1, 'a': 0, 'c': 2})
print(s)
输出结果:
b 1
a 0
c 2
dtype: int64
若没有给定index,则以字典的键作为索引;
若给定了index,键与index中相同的索引将赋予指定值,键中没有的index值将被赋予NaN值,且Series中的顺序根据index定,如:
import pandas as pd
s = pd.Series(data={'b': 1, 'a': 0, 'c': 2}, index=['b', 'c', 'd', 'a'])
print(s)
输出结果:
b 1.0
c 2.0
d NaN
a 0.0
dtype: float64
由常量创建Series
由常量创建Series时,data为一个常数,此时必须指定index以确定Series的长度。
import pandas as pd
pd.Series(data=5., index=['a', 'b', 'c', 'd', 'e'])
输出结果:
a 5.0
b 5.0
c 5.0
d 5.0
e 5.0
dtype: float64
创建Series时还可以给定name值
二、Series的取值
Series的取值方式和ndarray的方式一样,同时还增加了一些自己的取值方式。
先创建出一个Series
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'])
输出结果:
a 0.956451
b 1.530236
c 1.158817
d -0.089345
e 0.017960
dtype: float64
根据下标取值
s[0]
# 输出结果为:0.9564505464176255
切片:
s[:3]
# 输出结果:
a 0.956451
b 1.530236
c 1.158817
dtype: float64
指定某些具体行:
s[[4, 3, 1]]
# 输出结果:
e 0.017960
d -0.089345
b 1.530236
dtype: float64
根据index取值
s['a']
# 输出结果:0.9564505464176255
可以通过下标或索引对Series值进行修改
s[1]=1.1 # 等效于 s['b']=1.1
# s的值为:
a 0.956451
b 1.100000
c 1.158817
d -0.089345
e 0.017960
dtype: float64
三、Series的属性
常用属性有data、index、name
import pandas as pd
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'], name="yellice")
各属性的值为:
print(s.data) # <memory at 0x0000022A666264C8> FutureWarning:后面版本将删除
print(s.index) # Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
print(s.name) # 'yellice'
四、Series的方法
1、loc与iloc方法
iloc是使用整数下标来索引,为integer location的简写
loc是使用index标签来索引
注:iloc和loc后面的是中括号([ ]),而不是小括号()
import pandas as pd
s = pd.Series(np.random.randn(5), index=['a', 'b', 'c', 'd', 'e'], name="yellice")
输出结果:
a 0.579516
b 1.166545
c -0.324949
d -0.616307
e 0.221089
Name: yellice, dtype: float64
基本使用:
s.iloc[3] # -0.6163069854118451
s.loc['d'] # -0.6163069854118451
也支持切片:
s.iloc[1:3]
# 输出结果
b 1.166545
c -0.324949
Name: yellice, dtype: float64
s.loc['b': 'd']
# 输出结果:
b 1.166545
c -0.324949
d -0.616307
Name: yellice, dtype: float64
注:iloc切片不包含最后一个索引,如上例中的下标3;而loc切片则包含最后一个标签,如上例的标签’d’。
2、tolist()方法
将Series数据转换成列表数据
s.tolist()
# 输出结果:
[0.5795157725597121,
1.1665451939591256,
-0.3249487370941685,
-0.6163069854118451,
0.22108853110796142]
3、items()方法
返回一个索引和值的zip,类似python中对字典使用zip函数,list强转可打印
list(s.items())
# 输出结果:
[('a', 0.5795157725597121),
('b', 1.1665451939591256),
('c', -0.3249487370941685),
('d', -0.6163069854118451),
('e', 0.22108853110796142)]
4、keys()方法
返回index值
s.keys()
# 输出结果:Index(['a', 'b', 'c', 'd', 'e'], dtype='object')
5、min()和max()方法
返回最小值和最大值
6、to_numpy()方法
返回ndarray数据
注:此方法在pandas version 0.24.0新增,老版本不支持
7、get()方法
获取给定标签的值,类似字典中的方法get()
s.get('a')
# 输出结果:0.579516
s.get(['a', 'c'])
# 输出结果:
a 0.579516
c -0.324949
Name: yellice, dtype: float64
# 此方法支持对不存在的标签设置默认返回值
s.get('f', 66)
8、rename()方法
重命名Series
s.rename('hello')
# 输出结果:
a 0.579516
b 1.166545
c -0.324949
d -0.616307
e 0.221089
Name: hello, dtype: float64
9、sort_values()和sort_index()
sort_values() 根据值排序
sort_index() 根据index排序
s.sort_values()
# 输出结果:
d -0.616307
c -0.324949
e 0.221089
a 0.579516
b 1.166545
Name: yellice, dtype: float64
s = pd.Series([0.579516, 1.166545, -0.324949, -0.616307, 0.221089], index=['e', 'd', 'c', 'b', 'a'])
s.sort_index()
# 输出结果:
a 0.221089
b -0.616307
c -0.324949
d 1.166545
e 0.579516
dtype: float64
10、head()和tail()方法
查看数据的头和尾部数据,默认为显示5行数据
s.head(2)
# 输出结果:
a 0.579516
b 1.166545
Name: yellice, dtype: float64
s.tail(2)
# 输出结果:
d -0.616307
e 0.221089
Name: yellice, dtype: float64