DataFrame使用multiIndex

时间:2018-05-16 11:10:47

标签: python pandas dataframe multi-index

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 :(得分:1)

你是说这个吗?

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

答案 1 :(得分:0)

你可以这样做

ix = df.index.levels[0].tolist()[:2]
df.loc[ix, :]

答案 2 :(得分:-1)

你可以这样做:

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

输出:

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