Добавление атрибута «ключи» в сцепленные кадры данных - PullRequest
0 голосов
/ 29 ноября 2018

Я объединяю два кадра данных по оси = 1 (столбцы) и пытаюсь использовать «ключи», чтобы позже иметь возможность различать столбцы двух кадров данных с одинаковыми именами.

df1 = pd.DataFrame({'tl': ['x1', 'x2', 'x3', 'x4'],
            'ff': ['y1', 'y2', 'y3', 'y4'],
            'dd': ['z1', 'z2', 'z3', 'z4']},
            index=[2016-01-01, 2016-01-02, 2016-01-03, 2016-01-04])

df2 = pd.DataFrame({'tl': ['x1', 'x2', 'x3', 'x4'],
            'ff': ['y1', 'y2', 'y3', 'y4'],
            'rf': ['z1', 'z2', 'z3', 'z4']},
            index=[2016-01-01, 2016-01-02, 2016-01-03, 2016-01-04])

data = pd.concat([df1, df2],keys=['snow','wind'], axis=1, ignore_index=True)

Однако при попытке напечатать все столбцы, принадлежащие одному из ключей, как предложено @YashTD в Панды добавляют ключи при объединении кадров данных на уровне столбцов

print(comb_data.snow.tl)

Я получаю следующую ошибкусообщение:

AttributeError: 'DataFrame' object has no attribute 'snow'

Я думаю, что ключи просто не добавляются в фрейм данных, но я не знаю почему.Они также не отображаются при печати заголовка блока данных (), если их следует предложить Панды добавить ключи при объединении данных на уровне столбца

Знаете ли вы, как добавить ключи кдатафрейм?

1 Ответ

0 голосов
/ 29 ноября 2018

Сначала удалите параметр ignore_index=True для MultiIndex в столбцах, а затем выберите tuple:

data = pd.concat([df1, df2],keys=['snow','wind'], axis=1)
print (data)
           snow         wind        
             tl  ff  dd   tl  ff  rf
2016-01-01   x1  y1  z1   x1  y1  z1
2016-01-02   x2  y2  z2   x2  y2  z2
2016-01-03   x3  y3  z3   x3  y3  z3
2016-01-04   x4  y4  z4   x4  y4  z4

print (data[('snow','tl')])
2016-01-01    x1
2016-01-02    x2
2016-01-03    x3
2016-01-04    x4
Name: (snow, tl), dtype: object
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...