DataFrame делает голову на multiIndex - PullRequest
0 голосов
/ 16 мая 2018
df = pd.DataFrame(data=[['A', 'B', 12], ['A', 'B', 143], ['C1', 'C1', 11], ['C1', 'C1', 11],['C1', 'C1', 11], ['C3', 'C4', 11]], columns=['first', 'secound', 'data'])

df.set_index(['first', 'secound'], inplace=True)

               data
first secound      
A     B          12
      B         143
C1    C1         11
      C1         11
      C1         11
C3    C4         11

Я хочу получить все данные первых двух значений индекса на уровне индекса first. Желаемый результат:

               data
first secound      
A     B          12
      B         143
C1    C1         11
      C1         11
      C1         11

Спасибо

Ответы [ 3 ]

0 голосов
/ 16 мая 2018

Вы можете сделать это

ix = df.index.levels[0].tolist()[:2]
df.loc[ix, :]
0 голосов
/ 16 мая 2018

Вы можете сделать это:

df = df.drop('C3', level='first')

Вывод:

               data
first secound      
A     B          12
      B         143
C1    C1         11
      C1         11
      C1         11
0 голосов
/ 16 мая 2018

Ты имеешь в виду это?

In [9]: df.loc[df.index.get_level_values(0).unique()[:2].tolist()]
Out[9]:
               data
first secound
A     B          12
      B         143
C1    C1         11
      C1         11
      C1         11
...