2016-05-24 7 views
3

CSVファイルの列名を数字で始まるPythonプログラムに読み込むことについて質問がありましたか?したがって、私のCSVデータファイルTeams.csvには、R,、H2B3Bなどの名前またはヘッダーの列があります。具体的には、CSVファイルはLahman's Baseball DatabaseのTeams.csv fileです。私はPythonでこのファイルを読み込むときに数字(Python)で始まるCSV列名を読み取る

は今、私はこれを使用します。

#imported pandas as pd 
df = pd.read_csv("Teams.csv") 

#Get stats for offense 
R = df.R 
AB = df.AB 
H = df.H 

をし、これらが正常に動作しますが、私は2B3Bをインポートしようとすると、

doubles = df.2B 
triples = df.3B 

これらの構文を与えるのにPythonの変数が数字で始まっていないためにエラーが発生しました。

私はPython自体の中でこれを行う方法がありますか?または、私はCSVに入って、ヘッダの名前をX2BX3Bに変更する必要がありますか?

Lahmanの野球データベースにはたくさんのCSVファイルがあるので、後者をやっていません。

+0

changeを文字列にマップし、variable = str(2B)のように変数に保存しますか? – Leukonoe

+1

私はパンダ 'DataFrame'を知らない。しかし、おそらく 'df [" 2B "]'を実行することができます。 –

+0

残念ながら、私がdf.variableをやると、変数が列ヘッダーとして検索されます – Kai

答えて

3

あなたは、ブラケット表記を使用することができます

doubles = df['2B'] 
triples = df['3B'] 
1

IIUCを、あなたは条件付きで列名の名前を変更するために、dot表記して列にアクセスすることを好む場合:

#Check if a column name is starting with digit and 
#if it is starting rearrange column name to start with a character 
df.columns = [ ''.join([x[1],x[0]]) if re.match('^\d',x) else x for x in df.columns] 

は、この結果を生成します:

enter image description here

関連する問題