Python 熊猫:使用行和的条形图

Python 熊猫:使用行和的条形图,python,pandas,Python,Pandas,我有一个数据框,如下所示: ID | A | B | C | ... -------------------- 1 | 0 | 0 | 0 | ... 2 | 1 | 1 | 1 | ... 3 | 1 | 1 | 0 | ... 有许多列和行,并且值是二进制的。我想使用条形图(或pieplot)来绘制行总和的百分比。这是我正在寻找的一种可视化: 我尝试使用df.sum(axis=1).reset_index()来获取每行的总和,但我不知道下一步是什么。任何打印工具都可以。一旦使用以下工

我有一个数据框,如下所示:

ID | A | B | C | ...
--------------------
1  | 0 | 0 | 0 | ...
2  | 1 | 1 | 1 | ...
3  | 1 | 1 | 0 | ...
有许多列和行,并且值是二进制的。我想使用条形图(或pieplot)来绘制行总和的百分比。这是我正在寻找的一种可视化:
我尝试使用
df.sum(axis=1).reset_index()
来获取每行的总和,但我不知道下一步是什么。任何打印工具都可以。

一旦使用以下工具计算行数之和:

arr = df.sum(axis=1)
可以使用numpy计算数组中每个元素的重复次数:

unique, counts = np.unique(arr, return_counts=True)
myDictionary = dict(zip(unique, counts))
plt.bar(myDictionary.keys(), myDictionary.values(), width, color='g')
并使用此词典绘制条形图

另一种方法是绘制
arr
的直方图:

plt.hist(arr, bins=np.arange(arr.min(), arr.max()+1))

这是一个关于如何从数据帧的每一行的总和开始的总体思路。

一旦使用以下方法进行行总和计算:

arr = df.sum(axis=1)
可以使用numpy计算数组中每个元素的重复次数:

unique, counts = np.unique(arr, return_counts=True)
myDictionary = dict(zip(unique, counts))
plt.bar(myDictionary.keys(), myDictionary.values(), width, color='g')
并使用此词典绘制条形图

另一种方法是绘制
arr
的直方图:

plt.hist(arr, bins=np.arange(arr.min(), arr.max()+1))

这是关于如何从数据帧的每一行的总和开始的一般概念。

这将为您提供一个起点。其思想是将df的长度除以
%

import pandas as pd
import seaborn as sns
df = pd.DataFrame([
    [1,1,0],
    [1,0,0],
    [0,0,0],
    [1,1,0],
    [0,0,0],
    [1,0,1],
    [1,1,0],
    [0,0,1]
],columns = ['a','b','c'])
k = df.sum()/len(df)
k.plot.bar()


这将为您提供一个起点。其思想是将df的长度除以
%

import pandas as pd
import seaborn as sns
df = pd.DataFrame([
    [1,1,0],
    [1,0,0],
    [0,0,0],
    [1,1,0],
    [0,0,0],
    [1,0,1],
    [1,1,0],
    [0,0,1]
],columns = ['a','b','c'])
k = df.sum()/len(df)
k.plot.bar()