Pandas: обратитесь к имени столбца, без учета регистра

используя Pandas DataFrame допустим у меня есть куча столбцов в CSV-файла файл, и я хочу иметь доступ к любому из них через нечувствительное к регистру имя.

import pandas as pd

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

df2 = df["Size"]

фактическое имя столбца "Size". Что я могу сделать, чтобы df2 = df["sIZE"] можно также принять?

3 ответов


вы можете просто позвонить str.lower на columns:

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')

почему бы не нормализовать имена столбцов в df?

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

вы пытались изменить имена столбцов с помощью df.столбцы для всех нижних или верхних регистров? Вы можете сделать это с помощью

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

возможно, это может решить вашу проблему.