web-dev-qa-db-ja.com

パンダ:列名を参照し、大文字と小文字を区別しない

Pandas DataFrameを使用して、csvファイルに多数の列があり、大文字と小文字を区別しない名前でそれらの列のいずれかにアクセスできるようにしたいとします。

import pandas as pd

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

df2 = df["Size"]

実際の列名は"Size"です。 df2 = df["sIZE"]も受け入れられるようにするにはどうすればよいですか?

15
Winterflags

あなただけ呼び出すことができます 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')
14
EdChum

Df.columnsを使用して列名をすべて小文字または大文字に変更してみましたか?あなたはそれを使うことができます

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

多分それはあなたの問題を解決することができます。

9
Daniel Severo

dfの列名を正規化しないのはなぜですか?

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