2017-04-21 116 views
0

假设我有一列作为性别包含像值的数据帧 -可视化数据

male 
female 
female 
empty 
male 
female 

在条形图或饼图到的形式使用matplotlib如何可视化这个数据显示男性和女性的数量/比例?

+0

我同意,这个问题可以被看作是质量不好,因此被downvoted;但是,我不明白为什么人们想要关闭这个问题。它不是太广泛(因为答案基本上是一个单一的代码行),也不是脱离主题(因为一旦你知道使用哪个命令,答案只是微不足道的)。 – ImportanceOfBeingErnest

回答

1

最简单的选择可能是在列上使用value_count并将结果绘制为条形图。

import pandas as pd 
import matplotlib.pyplot as plt 

a = ["male","female", "female", "empty","male","female"] 
df = pd.DataFrame(a, columns= ["gender"]) 

df["gender"].value_counts().plot.bar() 

plt.show() 

enter image description here

它同样可以绘制一个饼图,

df["gender"].value_counts().plot.pie() 
plt.gca().set_aspect("equal") 

enter image description here

另一种选择,让更多的微调,是使用matplotlib如下:

import pandas as pd 
import matplotlib.pyplot as plt 

a = ["male","female", "female", "empty","male","female"] 
df = pd.DataFrame(a, columns= ["gender"]) 

labels = [] 
for i, dfi in enumerate(df.groupby(["gender"])): 
    labels.append(dfi[0]) 
    plt.bar(i, dfi[1].count(), label=dfi[0]) 
plt.xticks(range(len(labels)), labels) 
plt.legend() 
plt.show() 

enter image description here

0

使用本地熊猫功能:

a = ["male","female", "female", "empty","male","female"] 
df = pd.DataFrame(a, columns= ["gender"]) 
_ = df.groupby('gender').size().plot(kind='pie', legend=True) 

enter image description here