📅  最后修改于: 2023-12-03 15:33:24.813000             🧑  作者: Mango
Pandas是Python中最常用的数据分析库之一。Pandas Series是Pandas中最基本的数据结构之一,由一组有序的数据和与之关联的索引组成。在Pandas中,我们可以使用索引来过滤Series中的数据,这是Pandas操作中最常用的操作之一。
在介绍如何按索引过滤Series之前,我们先来看一下如何创建Series。
import pandas as pd
import numpy as np
# 从列表创建Series
s = pd.Series([1,3,5,np.nan,6,8])
print(s)
# 从字典创建Series
d = {'a': 1, 'b': 2, 'c': 3}
s = pd.Series(d)
print(s)
# 从NumPy数组创建Series
a = np.array([1, 2, 3, 4])
s = pd.Series(a)
print(s)
输出:
0 1.0
1 3.0
2 5.0
3 NaN
4 6.0
5 8.0
dtype: float64
a 1
b 2
c 3
dtype: int64
0 1
1 2
2 3
3 4
dtype: int64
Pandas Series可以使用以下方法来按索引过滤数据:
.loc[]
:用于按标签索引过滤数据;.iloc[]
:用于按位置索引过滤数据;[]
:可以同时用于按标签或位置索引过滤数据。下面分别介绍这三种方法的用法。
.loc[]
使用.loc[]
方法可以按标签索引过滤Series,语法如下:
s.loc[label]
其中,label
为标签。
下面是一个例子:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# 按标签索引过滤
print(s.loc['a'])
print(s.loc[['a', 'b', 'c']])
print(s.loc['a':'c'])
输出:
a 1
b 2
c 3
d 4
e 5
dtype: int64
1
a 1
b 2
c 3
dtype: int64
a 1
b 2
c 3
dtype: int64
我们可以看到,使用.loc[]
方法可以按标签索引过滤Series,并且可以使用标签范围进行切片。
.iloc[]
使用.iloc[]
方法可以按位置索引过滤Series,语法如下:
s.iloc[pos]
其中,pos
为位置。
下面是一个例子:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# 按位置索引过滤
print(s.iloc[0])
print(s.iloc[[0, 1, 2]])
print(s.iloc[0:3])
输出:
a 1
b 2
c 3
d 4
e 5
dtype: int64
1
a 1
b 2
c 3
dtype: int64
a 1
b 2
c 3
dtype: int64
我们可以看到,使用.iloc[]
方法可以按位置索引过滤Series,并且可以使用位置范围进行切片。
[]
使用[]
可以同时用于按标签或位置索引过滤Series,语法如下:
s[label_or_pos]
其中,label_or_pos
可以是标签或位置。
下面是一个例子:
import pandas as pd
# 创建Series
s = pd.Series([1, 2, 3, 4, 5], index=['a', 'b', 'c', 'd', 'e'])
print(s)
# 按标签或位置索引过滤
print(s['a'])
print(s[['a', 'b', 'c']])
print(s['a':'c'])
print(s[0])
print(s[[0, 1, 2]])
print(s[0:3])
输出:
a 1
b 2
c 3
d 4
e 5
dtype: int64
1
a 1
b 2
c 3
dtype: int64
a 1
b 2
c 3
dtype: int64
1
a 1
b 2
c 3
dtype: int64
a 1
b 2
c 3
dtype: int64
我们可以看到,使用[]
方法可以同时用于按标签或位置索引过滤Series,并且可以使用标签范围或位置范围进行切片。
Pandas Series按索引过滤是Pandas中最常用的操作之一。通过本文,我们了解了如何创建Series,并介绍了如何使用.loc[]
、.iloc[]
和[]
方法来按标签或位置索引过滤数据。如果你还不熟悉Pandas Series的其他操作,建议继续研究,尽快掌握这个强大的工具,提高数据分析工作效率。