按组绘制条形图

2024-10-06 11:28:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个Telco-Customer Churn dataset。在根据不同的任期分析了流失率之后,我想把它想象成下图中的样子,在下图中,只有流失的数量与不同的任期“仓位”对应。你知道吗

enter image description here

下面是我尝试过的:

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()

这是我得到的情节(有点混乱),其中显示了“是”和“否”两个类别。如果我只想用相同颜色的条显示“是”类别,如何解决这个问题? enter image description here


Tags: csvtheimportdatabinrateasplt
1条回答
网友
1楼 · 发布于 2024-10-06 11:28:38

我认为,如果您想通过^{}将这两个类别合并在一起,则需要重塑:

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()

相关问题 更多 >