Python:pandas数据框和调试器中{Series} 0的含义

时间:2015-10-14 15:02:48

标签: python python-2.7 pandas series

我在Python 2.7中使用pandas并读取这样的csv文件:

import pandas as pd

df = pd.read_csv("test_file.csv")

df有一个标题为rating的列,以及一个标题为'review'的列,我对df进行了一些操作,例如:

df3 = df[df['rating'] != 3]

现在,如果我在df['review']df3['review']查看调试器,我会看到以下信息:

df['review'] = {Series}0
df3['review'] = {Series}1

另外,如果我想查看df['review']的第一个元素,我会使用:

df['review'][0]

这很好,但如果我对df3做同样的事情,我会收到此错误:

df3['review'][0]
{KeyError}0L

然而,看起来我可以这样做:

df3['review'][1]

有人可以解释一下这个区别吗?

1 个答案:

答案 0 :(得分:1)

在系列上使用整数进行索引并不像列表那样工作。特别是,df['review'][0]并未获得"评论"的第一个元素。列,它获取索引为0的元素:

In [4]: s = pd.Series(['a', 'b', 'c', 'd'], index=[1, 0, 2, 3])

In [5]: s
Out[5]:
1    a
0    b
2    c
3    d
dtype: object

In [6]: s[0]
Out[6]: 'b'

据推测,在生成df3时,您删除了索引为0的行。如果您确实想要获取第一个元素而不考虑索引,请使用iloc

In [7]: s.iloc[0]
Out[7]: 'a'