我有一个excel工作簿,可以从中读取数据并进行处理。在excel工作簿中,某些列标题是数字,我不知道如何在熊猫中使用它们。我也不允许在excel中更改列标题(出于该项目的目的)。
在这种情况下,列标题都是相同的(例如:2008、2008和2008),并且都是数字。在我的项目中这是有道理的,但对大熊猫和我来说都很困惑。之所以区分它们,是因为excel工作簿中它们上方的行具有更多信息。
filename = 'myfile.xlsx'
data = pd.read_excel(myfile, skiprows=8)
print("Column Headings")
print(data.columns)
打印列标题(缩短的列表)的结果:
Index([2008, '2008.1', '2008.2'], dtype='object')
现在,我需要使用这些列名称来获取这些列中的数据...
provider_name = 'example_name'
subset_by_provider = data.loc[data['Provider'] == provider_name]
#the error is here. 2008 is the column name
data_2008 = subset_by_provider.2008.tolist()
如上所述,错误出现在代码的最后一行。我正在将数据读入列表。 2008(作为整数)和“ 2008.1”是我的Excel工作表中的列名称。但是我收到语法错误。
#Doesn't work
data_2008 = subset_by_provider.2008.tolist()
#Doesn't work
data_2008 = subset_by_provider.'2008.1'.tolist()
#Does work
data_2008 = subset_by_provider.i2008.tolist()
在第二行中,我将excel工作表中的列名从2008更改为i2008,以证明这一点。但是,实际上,我是不允许这样做的。
如何读取列名2008或'2008.1'?
答案 0 :(得分:0)
如以上评论中所述。解决方案:
data_2008 = subset_by_provider[2008].tolist()
or
data_2008 = subset_by_provider['2008.1'].tolist()