读取以数字(Python)

时间:2016-05-24 09:47:29

标签: python csv pandas

我有一个问题是从CSV文件中读取列名到我的python程序中以数字开头?因此,我的名为Teams.csv的CSV数据文件包含名称或标题的列,例如RABH2B3B等。具体来说,CSV文件是拉赫曼棒球数据库的Teams.csv file

现在,当我用Python阅读这个文件时,我用它:

#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

我宁愿不做后者,因为拉赫曼的棒球数据库有很多CSV文件。

2 个答案:

答案 0 :(得分:3)

您可以使用括号表示法:

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

答案 1 :(得分: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