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