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)
有什么方法可以为列提供标题吗?谢谢
最简单的是删除as_index = False返回Series并将参数添加name到reset_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)
| 归档时间: |
|
| 查看次数: |
13064 次 |
| 最近记录: |