2016-07-21 46 views
2

因此,我在熊貓創建一個數據框後,我有一個函數,大寫頭。但是當我嘗試在大寫後訪問數據幀信息時,出現分段錯誤錯誤。如果我在應用函數之前嘗試訪問它,我沒有任何問題。我可能做錯了什麼?Python Pandas - 重命名列之後的分段錯誤?

reader = pd.read_csv(inFile) 

def capitalize_headers(df): 
    for i in range(len(list(df.columns.values))): 
     df.columns.values[i] = (df.columns.values[i]).upper() 

capitalize_headers(reader) 

print reader['ColumnName'] 

回答

2

如果大寫所有列名稱,則訪問具有小寫字符的列將引發錯誤。

具體而言,線

df.columns.values[i] = (df.columns.values[i]).upper() 

轉換'columnname''COLUMNNAME'。 Pandas中的列訪問區分大小寫,因此您現在可以通過df['COLUMNNAME']訪問該列。

而且,這裏是這樣使用Pandas str methods更有效的/ Python的方式。

df.columns = df.columns.str.capitalize() 
+0

感謝您的幫助!我雖然措辭不佳,但我很抱歉。我確實嘗試檢查['COLUMNNAME'],這給了我同樣的錯誤。除了我已經發布並正在處理它之外,我的錯誤已經切換到KeyError:'COLUMNNAME' – MrDinkleburg

+0

雖然如果我嘗試打印數據框但仍然出現分段錯誤 – MrDinkleburg

+0

實際上,一旦我實現了大小寫功能,一切正常!我確實必須將其更改爲df.columns.to_series()。capitalize()才能使其工作。再次感謝所有的幫助! – MrDinkleburg