在 pandas 数据框中将索引设为组中的第一行

Make index first row in group in pandas dataframe

我想知道是否可以根据索引(该索引的名称)制作每个组的第一行。假设我们有这样一个 df:

dic = {'index_col': ['a','a','a','b','b','b'],'col1': [1, 2, 3, 4, 5, 6]}
df = pd.DataFrame(dic).set_index('index_col')

是否可以将上面的数据框转换为如下所示的数据框?这里发生的事情是索引已被重置,并且对于每个组,第一行是索引名称?

结果是 pandas.Series;

df_list = []
for label , group in df.groupby('index_col'):
    df_list.append(pandas.concat([pandas.Series([label]), group['col1']]))

df_result = pandas.concat(df_list).reset_index(drop=True)

输出;

0    a
1    1
2    2
3    3
4    b
5    4
6    5
7    6
dtype: object

如果需要数据框,请调用 df_result.to_frame()