Pandas 使用双括号和单括号索引的区别

Pandas 使用双括号和单括号索引的区别

在Pandas中使用括号索引是数据分析工作中的重要方法之一。但是,你知道在Pandas中双括号和单括号索引的区别吗?本文将会为大家详细介绍其中的差异。

阅读更多:Pandas 教程

单括号索引与普通Python索引的异同

在Pandas数据框中,单括号的索引类似于普通Python中对列表和字典的索引。我们可以使用单个列或多个列进行索引。下面是单括号索引的一些实例:

import pandas as pd
df = pd.DataFrame({"A": [1, 2, 3], "B": [4, 5, 6], "C": [7, 8, 9]})
Python
print(df['A'])
Python
0    1
1    2
2    3
Name: A, dtype: int64
Python

此时我们可以看出,单括号索引返回的是以Series形式排列的DataFrame的一列,而不是DataFrame本身。那么如果我们想要查看多列的数据呢?可以使用如下形式的单括号索引:

print(df[['A', 'C']])
Python
   A  C
0  1  7
1  2  8
2  3  9
Python

可以看到,通过使用双括号进行索引,我们得到了一个新的DataFrame,而不是以Series形式呈现的DataFrame的单个列。

双括号索引与单括号索引的区别

在Pandas中,使用双括号索引,我们可以用于过滤或选择数据框中符合条件的多行和多列数据。下面是双括号索引的一些实例:

print(df.loc[:,['A','B']])
Python
   A  B
0  1  4
1  2  5
2  3  6
Python

上面的代码实现了对所有行(:)中列名为AB的列进行选择。如果使用单括号进行相同的操作,则会导致语法错误。

而如果我们想要选择A列中值大于2的行数,那么就可以用双括号处理:

print(df.loc[df['A']>2])
Python
   A  B  C
2  3  6  9
Python

如果用单括号处理,则会出现错误:

print(df[df['A']>2])
Python
TypeError: 'Series' object is not callable
Python

双括号可以让我们使用更多的筛选功能,并能显示DataFrame结构。而单括号则仅能使用基本的索引功能。

使用切片选择数据

在Pandas中,还可以使用切片选择数据。不同于Python中的切片,Pandas可以使用一个切片操作符和一个列名列表。下面是一个使用切片选择单列数据的例子:

print(df.loc[1:2, ['B']])
Python
   B
1  5
2  6
Python

如果我们使用单括号,并尝试相同的切片操作,则会获取到行而不是指定的列:

print(df[1:2]['B'])
Python
1    5
Name: B, dtype: int64
Python

总结

单括号索引可以方便地访问一个Pandas DataFrame中的一个列,也可以选择多列。但是,如果要进行更高级的操作,可以尝试使用双括号索引。使用双方形而不是单方形索引时要注意,在处理行和列时使用正确的语法。此外,我们还了解了如何使用切片操作符选择数据,并且发现了单括号索引在这方面的限制。在实际使用中,需要根据不同的情况选择恰当的索引方式,以实现所需的操作。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

登录

注册