我想要做的是将列Visits与Label列和 cmpgn_group2行进行聚合(求和),因此最终结果如下所示:cmpgn_group2,Campaigns,Direct Entry,Search Engines,Social Networks,Websites name_1,2618.0,2266.0,4386.0,691.0,1097.0name_2,,1046.0,4045.0,81.0,139.0name_3,27.0,6752.0,3266.0,12.0,250.0但是,当我打印数据框时,我得到以下信息: Visits Label Campaigns Direct Entry Search Engines Social Networks Websites cmpgn_group2 name_1 2618.0 2266.0 4386.0 691.0 1097.0 name_2 NaN 1046.0 4045.0 81.0 139.0 name_3 27.0 6752.0 3266.0 12.0 250.0在我的 Jupyter 笔记本中,这对于可读性来说很好,但是当我使用该to_csv()函数时,我想要一个合适的 csv(看起来像我上面显示的那样),不幸的是我得到的是这样的:,Visits,Visits,Visits,Visits,VisitsLabel,Campaigns,Direct Entry,Search Engines,Social Networks,Websites cmpgn_group2,,,,, name_1,2618.0,2266.0,4386.0,691.0,1097.0 name_2,,1046.0,4045.0,81.0,139.0 name_3,27.0,6752.0,3266.0,12.0,250.0从我的角度来看,这不是一个合适的 csv,我无法在我的工作流程中使用它。这是我的代码:df = pd.read_csv('channels_26_Oct_2020.csv')df2 = pd.pivot_table(df, values=['Visits'], columns=['Label'], index=' cmpgn_group2', aggfunc=np.sum)print(df2)df2.to_csv('channels_26_Oct_2020_2.csv')对此正确的做法是什么?如何创建正确的 csv?
1 回答
收到一只叮咚
TA贡献1821条经验 获得超4个赞
原因是pivot_table创建多索引 DataFrame。您可以将它们折叠成一个索引,如下所示:
df2 = pd.pivot_table(df, values=['Visits'], columns=['Label'], index=' cmpgn_group2', aggfunc=np.sum)
df2.columns = df2.columns.map('_'.join)
df2.to_csv('ex1.csv')
输出 CSV 文件:
cmpgn_group2,Visits_Campaigns,Visits_Direct Entry,Visits_Search Engines,Visits_Social Networks,Visits_Websites
name_1,2618.0,2266.0,4386.0,691.0,1097.0
name_2,,1046.0,4045.0,81.0,139.0
name_3,27.0,6752.0,3266.0,12.0,250.0
添加回答
举报
0/150
提交
取消