簡體   English   中英

如何使用 pivot 表來顯示多列之間公共值的百分比?

[英]How to use pivot table to show percent of common values between multiple columns?

我有 6 列 - 每列代表不同的公司。 然后,我在 6 列中有 600 多行 1 或 0,表示零件是否與每家公司簽訂合同(即列)。 這些部分可以在所有公司之間共享(即,每列的值可以為 1,這意味着該部分在所有公司中具有 100% 的通用性)。

我如何在 excel 中直觀地表示這一點? 我是 pivot 表的新手,基本上想分解每一行,看看每家公司之間公共部分的分布情況。

我已經總結了每一行(“總”列)以及每家公司旁邊的命中百分比(“1”)。 我希望按公司划分哪些共同部分相對於其他公司。

import pandas as pd
df=pd.DataFrame({'Comp_A':[1,1,1,1,0,1],
                 'Comp_B':[1,1,1,1,1,1],
                 'Comp_C':[1,1,1,1,1,1],
                 'Comp_D':[0,1,1,1,0,1],
                 'Comp_E':[1,0,1,1,0,1],
                 'Comp_F':[1,1,0,1,1,0],
                 'Sum': [df.sum()]})

對於 6 家公司的每一行 - 我想直觀地表示找到的 1 和 0 的數量。 這將告訴我有 x 數量的零件在所有公司中 100% 通用,僅在 Comp_B、C 和 D 等。

我對 Excel 或 Python 都開放。

樣品 DataFrame

import pandas as pd
df=pd.DataFrame({'Comp_A':[1,1,1,1,0,1],
                 'Comp_B':[1,1,1,1,1,1],
                 'Comp_C':[1,1,1,1,1,1],
                 'Comp_D':[0,1,1,1,0,1],
                 'Comp_E':[1,0,1,1,0,1],
                 'Comp_F':[1,1,0,1,1,0],
                 })
print(df)

   Comp_A  Comp_B  Comp_C  Comp_D  Comp_E  Comp_F
0       1       1       1       0       1       1
1       1       1       1       1       0       1
2       1       1       1       1       1       0
3       1       1       1       1       1       1
4       0       1       1       0       0       1
5       1       1       1       1       1       0

使用DataFrame.apply + Series.value_counts

count_df=df.apply(lambda x: x.value_counts(),axis=1).fillna(0)
print(count_df)

     0    1
0  1.0  5.0
1  1.0  5.0
2  1.0  5.0
3  0.0  6.0
4  3.0  3.0
5  1.0  5.0

import matplotlib.pyplot as plt
%matplotlib inline
count_df.plot(kind='bar')

Output 圖像:

在此處輸入圖像描述


如您所見,第 3 行對所有公司都是通用的


百分比:

percentages_comun=(df.sum(axis=1)/len(df.columns))*100
print(percentages_comun)
0     83.333333
1     83.333333
2     83.333333
3    100.000000
4     50.000000
5     83.333333
dtype: float64

percentages_comun.plot(kind='bar')

Output 圖像:

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM