2016-01-23 28 views
5

我是新來的編碼,目前正在嘗試Udacity Data Science介紹課程。試圖在演講中重新創建一個例子。NameError:名稱'系列'未定義

下面的代碼:

import pandas as pd 
import numpy as np 

d = { 
    'name': Series(['Braund', 'Cummings', 'Heikkinen', 'Allen'], index=['a', 'b', 'c', 'd']), 
    'age': Series([22, 38, 26, 35], index=['a', 'b', 'c', 'd']), 
    'fare': Series([7.25, 71.83, 8.05], index=['a', 'b', 'd']), 
    'survived?': Series([False, True, True, False], index['a', 'b', 'c', 'd']) 
} 
df = DataFrame(d) 
print df 

這裏是我的錯誤:

Traceback (most recent call last): 
    File "dataframe.py", line 4, in <module> 
    d = {'name': Series(['Braund', 'Cummings', 'Heikkinen', 'Allen'], 
NameError: name 'Series' is not defined 
Aschs-MacBook-Air:mystuff aschharwood$ 

我保存爲.py文件並在終端中運行。

非常感謝您的幫助和指導!

+3

用'pd.Series'替代'Series',用'pd.DataFrame'替換'DataFrame' –

回答

9

您已經將模塊導入爲名稱空間。您嘗試使用的類不在本地命名空間中,而是在導入模塊的名稱空間中。

簡單地指到正確的命名空間 - 使用pd.__WHAT_YOU_WANT__

import pandas as pd 

d = {'name': pd.Series(['Braund', 'Cummings', 'Heikkinen', 'Allen'], 
index = ['a', 'b', 'c', 'd']), 'age': pd.Series([22, 38, 26, 35], 
index = ['a', 'b', 'c', 'd']), 'fare': pd.Series([7.25, 71.83, 8.05], index = ['a', 'b', 'd']), 
'survived?': pd.Series([False, True, True, False], index['a', 'b', 'c', 'd'])} 


df = pd.DataFrame(d) 

print df 
+0

這樣就行了。非常感謝你的幫助! – Aschharwood

+0

很好解釋。 – madhavi

2

或者,你可以導入功能直接集成到你的主命名空間。

from pandas import Series, DataFrame 

,那麼你可以跳過前面加上pd.Series()DataFrame函數調用每次你打電話給他們時間。換句話說,您可以完全按照您的原始代碼運行原始代碼。