Pandas:请参阅列名,不区分大小写

Win*_*ags 14 python case-insensitive pandas

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

import pandas as pd

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

df2 = df["Size"]
Run Code Online (Sandbox Code Playgroud)

实际的列名是"Size".我能做什么才能df2 = df["sIZE"]被接受?

EdC*_*ica 14

你可以打电话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')
Run Code Online (Sandbox Code Playgroud)


Dan*_*ero 9

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

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

也许这可以解决你的问题.


Bli*_*ver 6

为什么不规范化列名df

df.columns = [c.lower() for c in df.columns]
Run Code Online (Sandbox Code Playgroud)