我正在完成一个Pandas教程,我看到的代码如下:
from pandas import read_csv
dataset = read_csv('customers.csv')
# remove customers older than 95
dataset = dataset[dataset.age < 95]
我想知道这个操作是什么,以及它是如何在Python中实现的?看起来数据框可以接受字母表示法(dataset['age']
),以及这种表示法。
答案 0 :(得分:1)
基本上,dataset.age < 95
将使用Series
的索引生成dataset
,并且值将是与该索引相关联的值与< 95
相比的结果。如果使用此结果选择数据框中的某些内容,则会返回系列中索引的值为True
的行。
例如:
In [1]: df = pd.DataFrame({'a': list(range(5)), 'b': list(range(5, 10))})
In [2]: df
Out[2]:
a b
0 0 5
1 1 6
2 2 7
3 3 8
4 4 9
In [3]: type(df.a < 3)
Out[3]: pandas.core.series.Series
In [4]: df.a < 3
Out[4]:
0 True
1 True
2 True
3 False
4 False
Name: a, dtype: bool
两种符号df.column_name
和df['column_name']
都是有效且等效的,但在这种情况下使用df.column name
时无法使用df['column name']
。通常,当df.column_name
是有效标识符时,可以使用column_name
,并且它不会与为type(df)
定义的任何方法或字段具有相同的名称。