下面开始讲解Pandas中Series和DataFrame的索引实现的攻略。
在Pandas中,数据结构主要有两种,分别是Series和DataFrame。Series是一维的数组,DataFrame是二维的表格型数据结构。对于这两个数据类型,索引都扮演着非常重要的角色。索引可以帮助我们快速地定位数据,提高数据操作的效率。
在Pandas中,有两类索引:行索引和列索引。行索引是用于定位、筛选行数据的,列索引是用于筛选列数据的。接下来,我们将详细介绍Pandas中Series和DataFrame的索引实现。
Series是由一组数据及其对应的标签(索引)组成的。Series的索引与一维数组的索引类似,可以通过整数位置或标签名访问单个值。我们来看一下如何使用Series的索引实现。
我们先来创建一组Series数据,以下是代码示例:
import pandas as pd
# 创建一个Series对象
s = pd.Series([1, 3, 5, 7, 9], index=['a', 'b', 'c', 'd', 'e'])
print(s)
输出结果如下:
a 1
b 3
c 5
d 7
e 9
dtype: int64
我们可以通过索引的标签名来访问Series中的元素。以下是代码示例:
# 根据标签访问单个元素
print(s['b'])
输出结果如下:
3
我们也可以使用标签列表或切片来选择多个元素。以下是代码示例:
# 根据标签列表选择多个元素
print(s[['a', 'c', 'e']])
# 根据标签切片选择多个元素
print(s['b':'d'])
输出结果如下:
a 1
c 5
e 9
dtype: int64
b 3
c 5
d 7
dtype: int64
我们可以使用整数位置来访问Series中的元素。以下是代码示例:
# 根据位置访问单个元素
print(s[1])
输出结果如下:
3
我们也可以使用整数列表或切片来选择多个元素。需要注意的是,使用位置索引时,末尾值对应的元素不会被选择。以下是代码示例:
# 根据位置列表选择多个元素
print(s[[0, 2, 4]])
# 根据位置切片选择多个元素
print(s[1:3])
输出结果如下:
a 1
c 5
e 9
dtype: int64
b 3
c 5
dtype: int64
DataFrame是由一组数据和它们各自的标签组成的。DataFrame实际上由一系列的Series组成,每一列对应一系列数据。了解了如何操作Series的索引后,我们接下来看看如何操作DataFrame的索引。
我们先用以下代码来创建一个DataFrame数据:
import pandas as pd
# 创建一个DataFrame对象
data = {'name': ['Tom', 'Jerry', 'Lucy', 'Amy'],
'age': [18, 19, 20, 21],
'gender': ['M', 'M', 'F', 'F']}
df = pd.DataFrame(data)
print(df)
输出结果如下:
name age gender
0 Tom 18 M
1 Jerry 19 M
2 Lucy 20 F
3 Amy 21 F
和Series一样,行索引也可以根据位置或标签进行访问。以下是代码示例:
# 根据标签访问单行
print(df.loc[1])
# 根据标签列表选择多行
print(df.loc[[0, 2]])
# 根据标签切片选择多行
print(df.loc[1:3])
# 根据位置访问单行
print(df.iloc[1])
# 根据位置列表选择多行
print(df.iloc[[0, 2]])
# 根据位置切片选择多行
print(df.iloc[1:3])
输出结果如下:
name Jerry
age 19
gender M
Name: 1, dtype: object
name age gender
0 Tom 18 M
2 Lucy 20 F
name age gender
1 Jerry 19 M
2 Lucy 20 F
3 Amy 21 F
name Jerry
age 19
gender M
Name: 1, dtype: object
name age gender
0 Tom 18 M
2 Lucy 20 F
name age gender
1 Jerry 19 M
2 Lucy 20 F
列索引是用于筛选某些列,可以根据列的标签进行访问,也可以根据位置进行访问。以下是代码示例:
# 根据标签访问单列
print(df['name'])
# 根据标签列表选择多列
print(df[['name', 'age']])
# 根据位置访问单列
print(df.iloc[:, 0])
# 根据位置列表选择多列
print(df.iloc[:, [0, 1]])
输出结果如下:
0 Tom
1 Jerry
2 Lucy
3 Amy
Name: name, dtype: object
name age
0 Tom 18
1 Jerry 19
2 Lucy 20
3 Amy 21
0 Tom
1 Jerry
2 Lucy
3 Amy
Name: name, dtype: object
name age
0 Tom 18
1 Jerry 19
2 Lucy 20
3 Amy 21
以上是关于Pandas中Series和DataFrame的索引实现的完整攻略。
本文链接:http://task.lmcjl.com/news/17423.html