2015-10-14 64 views
0

我正在使用Python 2.7版熊貓和讀取的CSV文件這樣的熊貓數據幀{系列} 0的含義:的Python:在調試器

import pandas as pd 

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

DF有名爲rating一列,一列名爲「審覈」,我做了一些操作上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] 

有人可以解釋 區別?

+0

因爲'0'不是'df3'的有效索引值嗎?如果你檢查指數這可能解釋錯誤 – EdChum

回答

1

使用Series上的整數索引不能像列表一樣工作。特別是,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' 
+0

謝謝埃文。關於{Series} 0和{Series} 1的含義是什麼,你還沒有回答我的問題。雖然我投票贊成有用的答案。 – TJ1

+0

如果您使用的是PyCharm,您可能只需要增大窗口大小。我得到這樣的東西:'df ['review'] = {Series} 0 0 \ n1 1 \ n ...',其中每行的第一個元素是索引,第二個元素是值。我認爲你看到df的第一個索引是0,df3的第一個索引是1。 –