2016-04-01 32 views
5

使用Pandas DataFrame,假設我在csv文件中有一堆列,我希望能夠通過不區分大小寫的名稱訪問其中的任何一個列。熊貓:請參考列名,不區分大小寫

import pandas as pd 

df = pd.read_csv(path_to_csv, delimiter=",") 

df2 = df["Size"] 

實際的列名是"Size"。我該怎麼做才能讓df2 = df["sIZE"]也能被接受?

+1

你試圖改變使用df.columns全部大寫或小寫的列名?你可以使用「df.columns = map(str.lower,df.columns)」。也許這可以解決你的問題。 –

回答

3

您只需調用str.lowercolumns

In [12]: 
df = pd.DataFrame(columns=['Size','COLOUR','caTegory']) 
df.columns 

Out[12]: 
Index(['Size', 'COLOUR', 'caTegory'], dtype='object') 

In [14]: 
df.columns = df.columns.str.lower() 
df.columns 

Out[14]: 
Index(['size', 'colour', 'category'], dtype='object') 
4

爲什麼不規範化df中的列名?

df.columns = [c.lower() for c in df.columns] 
3

您是否嘗試過使用df.columns更改列名到所有較低或大寫?你可以做,使用

df.columns = map(str.lower, df.columns)

也許能夠解決您的問題。

+1

感謝您的建議。這看起來對我來說是更好的答案,因爲我們正在與熊貓一起工作,並且它應該比替代方案快一點。 – Winterflags