【发布时间】:2019-01-08 04:35:44
【问题描述】:
我有一个数据框,下面的代码为我提供了两个“分支”0 和 1 之一的每个性别的事务数。所以假设我们有以下 groupby 对象
data.groupby(['branch','gender']).agg(np.size)['count']
branch gender
0 FEMALE 1317771
MALE 1214686
1 FEMALE 254173
MALE 179210
Name: count, dtype: int64
我这样做是因为我想创建一个条形图,显示每个性别和分支的交易数量。
我是这样做的:F 和 M 分别代表女性和男性。
plt.bar([0,1,2,3,],data.groupby(['end_reason','gender']).agg(np.size)['listener_id'],align='center')
plt.xticks(range(4),['F_0','M_0','F_1','M_1'])
plt.title("Number of transactions per gender and branch")
问题是我确信这不是正确的做法,因为我必须自己对标签进行硬编码。我认为可能有更好的方法来做到这一点,因为想象我们有更多的组,并且硬编码 xticks 中的所有组组合是不切实际的。谢谢
【问题讨论】:
-
你能创建一个minimal reproducible example 吗?
标签: python pandas dataframe matplotlib group-by