pandas
поддерживает имена столбцов многоуровневых:Панды: Многоуровневые имена столбцов
>>> x = pd.DataFrame({'instance':['first','first','first'],'foo':['a','b','c'],'bar':rand(3)})
>>> x = x.set_index(['instance','foo']).transpose()
>>> x.columns
MultiIndex
[(u'first', u'a'), (u'first', u'b'), (u'first', u'c')]
>>> x
instance first
foo a b c
bar 0.102885 0.937838 0.907467
Эта функция очень полезна, так как она позволяет использовать несколько версий одного и того же dataframe должен быть добавлен «горизонтально» с 1-го уровня имена столбцов (в моем примере instance
), отличающие экземпляры.
Представьте У меня уже есть dataframe вроде этого:
a b c
bar 0.102885 0.937838 0.907467
Есть хороший способ, чтобы добавить еще один уровень к именам столбцов, подобный этому для индекса строки:
x['instance'] = 'first'
x.set_level('instance',append=True)
Я не * думаю * есть, но определенно обязательно. Я думаю, что есть функция для этого на github ... –
Хотя возникает ряд интересных вопросов, например «как выбрать конкретный столбец при наличии двух уровней имен столбцов?». – LondonRob
x ['first'], x [(first ',' a ') или x.xs (' a ', axis = 1, level = 1)? : s –