【问题标题】:Plotting Bar Graph according to Group根据组绘制条形图
【发布时间】:2018-08-18 19:17:38
【问题描述】:

我有这个Telco-Customer Churn dataset。在根据不同的任期期限分析了流失率之后,我想将其可视化,如下图所示,其中只有流失的数量与不同的任期“箱”进行了对比。

以下是我尝试过的:

import pandas as pd
import matplotlib.pyplot as plt

user_data = pd.read_csv("https://github.com/WedamN/Telco-Churn-Prediction/blob/master/CustomerChurnData.csv")

# bin the tenure into every 6 months
user_data['tenure_bin'] = pd.cut(user_data['Tenure'], list(range(0, 73, 6)))

# some basic analysis
churn_rate_according_to_tenure = user_data.groupby('tenure_bin').Churn.value_counts('Yes')*100

# plot the results
churn_rate_according_to_tenure.plot().bar()
plt.show()

这是我获得的图(有点乱),其中显示了“是”和“否”类别。在我只想显示“是”类别且条形具有相同颜色的情况下,如何解决此问题?

【问题讨论】:

    标签: python pandas matplotlib visualization


    【解决方案1】:

    我认为如果要将两个类别放在一起unstack,您需要重塑:

    print (churn_rate_according_to_tenure.unstack())
    Churn              No        Yes
    tenure_bin                      
    (0, 6]      46.666667  53.333333
    (6, 12]     64.113475  35.886525
    (12, 18]    67.700730  32.299270
    (18, 24]    75.420168  24.579832
    (24, 30]    78.190255  21.809745
    (30, 36]    78.553616  21.446384
    (36, 42]    78.100264  21.899736
    (42, 48]    83.812010  16.187990
    (48, 54]    83.809524  16.190476
    (54, 60]    87.378641  12.621359
    (60, 66]    90.712743   9.287257
    (66, 72]    94.703390   5.296610
    

    churn_rate_according_to_tenure.unstack().plot.bar()
    

    如果要过滤,请选择类别 - 列:

    churn_rate_according_to_tenure.unstack()['Yes'].plot.bar()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 2020-06-23
      相关资源
      最近更新 更多