如何根据特定数据框列生成多组条形图
How to produce a multiple group bar chart based on a specific dataframe column
我有一个包含以下数据的数据框:
Age A
5 True
5 True
10 False
15 False
15 True
20 False
25 True
如何制作一个条形图,其中包含 Age 中总行数的值?因此,例如,7 作为 Y 轴,年龄作为 X 轴,每个年龄都有一个 True/False 条形图。
我想要这样的东西,但是它不是说性别 F/M,而是 True/False,每个年龄段:
我们可以使用DataFrame.value_counts()
(pandas > 1.1.0) or SeriesGroupBy.value_counts()
(pandas < 1.1.0) + DataFrame.plot
df.value_counts().unstack(fill_value=0).plot(kind='bar')
#df.groupby('A')['Age']\
# .value_counts().unstack(fill_value=0, level=0).plot(kind='bar') # <1.1.0
我们也可以使用 seaborn.countplot
import seaborn as sns
sns.countplot(data=df, x="Age", hue="A")
可能你想要这样的东西:
count_df = df.groupby("Age").count()
plt.barh(count_df.index, count_df.A, label="False")
sum_df = df.groupby("Age").sum()
plt.barh(sum_df.index, sum_df.A, label="True")
plt.legend()
如果我得到了你想要的,或者我误解了你的问题,请告诉我。
我有一个包含以下数据的数据框:
Age A
5 True
5 True
10 False
15 False
15 True
20 False
25 True
如何制作一个条形图,其中包含 Age 中总行数的值?因此,例如,7 作为 Y 轴,年龄作为 X 轴,每个年龄都有一个 True/False 条形图。
我想要这样的东西,但是它不是说性别 F/M,而是 True/False,每个年龄段:
我们可以使用DataFrame.value_counts()
(pandas > 1.1.0) or SeriesGroupBy.value_counts()
(pandas < 1.1.0) + DataFrame.plot
df.value_counts().unstack(fill_value=0).plot(kind='bar')
#df.groupby('A')['Age']\
# .value_counts().unstack(fill_value=0, level=0).plot(kind='bar') # <1.1.0
我们也可以使用 seaborn.countplot
import seaborn as sns
sns.countplot(data=df, x="Age", hue="A")
可能你想要这样的东西:
count_df = df.groupby("Age").count()
plt.barh(count_df.index, count_df.A, label="False")
sum_df = df.groupby("Age").sum()
plt.barh(sum_df.index, sum_df.A, label="True")
plt.legend()
如果我得到了你想要的,或者我误解了你的问题,请告诉我。