如何为 pandas groupby 结果指定列标题?

Nik*_*kya 1 python group-by dataframe pandas

我需要进行分组,然后以串联形式返回列的值。虽然我已经成功做到了这一点,但返回的数据帧的列名称为 0。只是 0。有没有办法指定结果是什么。

    all_columns_grouped = all_columns.groupby(['INDEX','URL'], as_index  = False)['VALUE'].apply(lambda x: ' '.join(x)).reset_index()
Run Code Online (Sandbox Code Playgroud)

生成的 groupby 对象具有标题

    INDEX | URL | 0
Run Code Online (Sandbox Code Playgroud)

结果在 0 列中。虽然我已经成功地使用重命名该列

   .rename(index=str, columns={0: "variant"}) this seems very in elegant. 
Run Code Online (Sandbox Code Playgroud)

有什么方法可以为列提供标题吗?谢谢

jez*_*ael 5

最简单的是删除as_index = False返回Series并将参数添加namereset_index

样本:

all_columns = pd.DataFrame({'VALUE':['a','s','d','ss','t','y'],
                   'URL':[5,5,4,4,4,4],
                   'INDEX':list('aaabbb')})

print (all_columns)
  INDEX  URL VALUE
0     a    5     a
1     a    5     s
2     a    4     d
3     b    4    ss
4     b    4     t
5     b    4     y

all_columns_grouped = all_columns.groupby(['INDEX','URL'])['VALUE'] \
                                 .apply(' '.join) \
                                 .reset_index(name='variant')

print (all_columns_grouped)
  INDEX  URL variant
0     a    4       d
1     a    5     a s
2     b    4  ss t y
Run Code Online (Sandbox Code Playgroud)