栗子如下:
import numpy as npvalues = np.array([1, 3, 2, 4, 1, 6, 4])
example_df = pd.DataFrame({
'value': values,
'even': values % 2 == 0,
'above_three': values > 3
}, index=['a', 'b', 'c', 'd', 'e', 'f', 'g'])
print(example_df)
执行如下:
above_three even value a False False 1 b False False 3 c False True 2 d True True 4 e False False 1 f True True 6 g True True 4first_even = example_df.groupby('even').first() #此时as_index默认为True
print(first_even)
执行如下:
above_three value even False False 1 True False 2
此时print(first_even('even')报错,
print(first_even.loc['a'])报错。
因为as_index=True时even列已经默认为索引列,新的dataframe中不再包含这列数据,原来的索引['a','b','c'...]也不再存在。
若
first_even = example_df.groupby('even',as_index='False').first() #此时as_index为False
print(first_even)
执行如下:
even above_three value 0 False False 1 1 True False 2
print(first_even.loc[0])
执行如下:even False above_three False value 1 Name: 0, dtype: object