Подтвердить что ты не робот

Pandas Доступ к столбцу с именами столбцов, содержащих пробелы

Если я импортирую или создаю столбец pandas, который не содержит пробелов, я могу получить к нему доступ как таковой:

df1 = DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
                 'data1': range(7)})

df1.data1

который вернет мне эту серию. Если, однако, этот столбец имеет пробел в своем имени, он недоступен с помощью этого метода:

df2 = DataFrame({'key': ['a','b','d'],
                 'data 2': range(3)})

df2.data 2      # <--- not the droid i'm looking for.

Я знаю, что могу получить доступ к нему с помощью .xs():

df2.xs('data 2', axis=1)

Должен быть другой способ. Я искал его, как сумасшедший, и не могу думать о другом способе его рекламы. Я прочитал все 96 записей здесь на SO, которые содержат "столбец" и "строка" и "pandas", и не могли найти никакого предыдущего ответа. Это единственный способ, или есть что-то лучше?

Спасибо!

4b9b3361

Ответ 1

Я думаю, что способ по умолчанию - использовать:

df1 = pandas.DataFrame({'key': ['b', 'b', 'a', 'c', 'a', 'a', 'b'],
             'dat a1': range(7)})

df1['dat a1']

Другие методы, такие как раскрытие его как атрибута, более удобны.

Ответ 2

Старый пост, но может быть интересным: идея (которая является разрушительной, но делает работу, если вы хотите ее быстро и грязно) заключается в переименовании столбцов с помощью подчеркивания:

df1.columns = [c.replace(' ', '_') for c in df1.columns]