Python中如何将groupby结果的city_name列写入Google Sheets?
你推测的原因是正确的,groupby()操作执行后,分组键city_name会成为结果DataFrame的行索引,而非普通数据列,绝大多数写入Google Sheets的工具默认不会将行索引作为内容导出,因此只会出现计数列。以下是两种常用解决方法:
方案1:将city_name转为普通列(最通用)
有两种实现方式都可以达到效果,选择任意一种即可:
- 分组后调用
reset_index(),把行索引转换为普通列:
onlybcount = dfbb.groupby('city_name').count().reset_index()
- groupby阶段直接指定
as_index=False,不把分组键设为索引,同时可以指定仅对hotel_id列计数,性能更高:
onlybcount = dfbb.groupby('city_name', as_index=False)['hotel_id'].count()
修改后得到的DataFrame会同时包含city_name和计数列,导出时两列都会正常写入Google Sheets。
方案2:导出时开启包含索引的参数(无需修改DataFrame结构)
如果你使用的是gspread、gspread-pandas这类Google Sheets专用导出库,大部分都提供了是否导出索引的参数,直接设置为True即可。比如使用gspread-pandas的df_to_sheet方法时,添加include_index=True参数:
df_to_sheet(onlybcount, spreadsheet=你的目标表格对象, include_index=True)
如果使用其他导出工具,查找对应配置项中包含行索引的相关开关,开启即可。
内容的提问来源于stack exchange,提问作者Swapnil Agnihotri
相关产品推荐
相关产品推荐

