我有一个包含许多列的数据框,我正在尝试制作数据透视表 像这样
数据样本
program | InWappTable | InLeadExportTrack
VIC | True | 1
VIC | True |1
VIC | True |1
VIC | True | 1
这是我的代码
rec.groupby(['InWappTable', 'InLeadExportTrack','program']).size()
预期输出为
答案 0 :(得分:1)
尽管您也可以有效地使用带有function sass(cb) {
return gulp.src(paths.sass)
.pipe(sourcemaps.init())
.pipe(sass.sync().on('error', sass.logError))
.pipe(sourcemaps.write())
.pipe(gulp.dest(buildDir));
cb();
}
的{{1}}方法,但我认为您不需要pivot_table
。
这是我的处理方式
生成一些数据
pivot_table
首先使用aggfunc
聚合进行a = [['program','InWappTable','InLeadExportTrack'],
['VIC',True,1],
['Mall',False,15],
['VIC',True,101],
['VIC',True,1],
['Mall',True,74],
['Mall',True,11],
['VIC',False,44]]
df = pd.DataFrame(a[1:], columns=a[0])
print(df)
program InWappTable InLeadExportTrack
0 VIC True 1
1 Mall False 15
2 VIC True 101
3 VIC True 1
4 Mall True 74
5 Mall True 11
6 VIC False 44
GROUP BY
count
编辑
基于OP中的注释,df_grouped = df.groupby(['program']).count()
print(df_grouped)
InWappTable InLeadExportTrack
program
Mall 3 3
VIC 4 4
可以替换为num_cols = ['InWappTable','InLeadExportTrack']
df_grouped[num_cols] = df_grouped[num_cols].astype(int)
df_grouped.loc['Total']= df_grouped.sum(axis=0)
df_grouped.reset_index(drop=False, inplace=True)
print(df_grouped)
program InWappTable InLeadExportTrack
0 Mall 3 3
1 VIC 4 4
2 Total 7 7
。在这种情况下,输出如下所示
df_grouped = df.groupby(['program']).count()
答案 1 :(得分:1)
IIUC,您可以尝试以下方法:
df_new=df.groupby(['program'])['InWappTable','InLeadExporttrack'].count().reset_index()
total = df_new.sum()
total['program'] = 'Total'
df_new=df_new.append(total, ignore_index=True)
print(df_new)