У меня есть книга 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()
Во 2-й строке я изменил имя столбца в таблице Excel с 2008 на i2008, просто чтобы доказать свою точку зрения. Однако на практике мне не разрешено это делать.
Как прочитать название столбца 2008 или '2008.1'?