我不做精确的枢轴表

时间:2019-02-03 17:20:27

标签: python pandas dataframe group-by

我有一个包含许多列的数据框,我正在尝试制作数据透视表 像这样

数据样本

program | InWappTable | InLeadExportTrack

VIC    |  True  | 1

VIC    | True   |1

VIC | True  |1

VIC | True  | 1

这是我的代码

rec.groupby(['InWappTable', 'InLeadExportTrack','program']).size()

预期输出为

enter image description here

2 个答案:

答案 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

然后获得sum of all columns

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)