2017-05-28 57 views
0

我一直在探索titanic dataset。我試圖創建一個 dataframe這將有兩個單獨列中的泰坦尼克號沉沒的人以及那些沒有的人的年齡。python,pandas:創建數據幀時InvalidIndexError

train = pd.read_csv('train.csv') 
    test = pd.read_csv('test.csv')  
    whole = pd.concat([train, test]) 
    df = pd.DataFrame({'survived': whole['Age'][whole['Survived'] == 1], 
         'died': whole['Age'][whole['Survived'] == 0]}) 

但我收到此錯誤

pandas.indexes.base.InvalidIndexError: Reindexing only valid with uniquely valued Index objects

我在做什麼錯?

+0

它運行這種變化不會對大熊貓0.20.1錯誤。 – ayhan

+0

改變這個:'whole = pd.concat([train,test])'''whole = pd.concat([train,test])。reset_index(drop = True)' – Nain

+0

@Nain是的,它工作。你能解釋什麼是問題嗎? – Sounak

回答

2

讓你的代碼 whole = pd.concat([train, test]).reset_index(drop=True)

+2

我們可以使用:'pd.concat([train,test],ignore_index = True)') – MaxU

+0

@MaxU This works too。將'ignore_index'設置爲'True'會發生什麼? – Sounak

+0

'pd.concat'會爲您創建一個新的默認索引('np.arange(len(concatenated_df))'),所以它不需要連接兩個現有索引,然後再次刪除它並創建一個新索引。 。 – MaxU