Pandas:引用列名,不区分大小写

Pandas: Refer to column name, case insensitive

使用 Pandas DataFrame,假设我在 csv 文件中有一堆列,我希望能够通过不区分大小写的方式访问其中的任何一个名字.

import pandas as pd

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

df2 = df["Size"]

实际列名是"Size"。我该怎么做才能让df2 = df["sIZE"]也被接受?

为什么不规范化 df 中的列名?

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

您是否尝试过使用 df.columns 将列名称更改为全部小写或大写?您可以使用

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

也许这可以解决您的问题。

您可以在 columns 上调用 str.lower:

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