【发布时间】:2015-11-28 22:15:24
【问题描述】:
假设我有这个 pandas 数据框,
pC Truth
0 0.601972 0
1 0.583300 0
2 0.595181 1
3 0.418910 1
4 0.691974 1
'pC' 是 'Truth' 为 1 的概率。'Truth' 是二进制值。 我想创建概率的直方图,每个 bin 的内部将是比例 0 与比例 1。
我尝试了以下,
df[['pC','Truth']].plot(kind='hist',stacked=True)
它只是将“真相”值置于 0 和 1 之间。
可重现:
shape = 1000
df_t = pd.DataFrame({'pC': np.random.rand(shape),
'Truth':np.random.choice([0,1],size=shape)})
df_t['factor'] = pd.cut(df_t.pC,5)
我该怎么做?谢谢
【问题讨论】:
-
发布可重现代码,例如使用
dput(df) -
我不明白这个问题。 pC 的每个值如何代表真理为 1 的概率?每一行代表什么?一个队列?一个样品?一个人?堆叠行意味着什么?
-
您真的有第三列,它始终为 0,因此根本不添加任何信息?
-
我认为输出几乎已经告诉您有关 df 的信息。您可以复制信息,并在
pd.read_clipboard()中创建数据框每个观察都是一个人,并且有“真相”1 和0。1 非常罕见,我只是复制粘贴df.head()。我会更新代码。没有第三列,如果参考第一列,就是索引。 -
@NapitupuluJon:不,输出没有告诉我们任何信息,而且您不必要地让复制变得痛苦。您的数据框 sn-p 肯定会被截断,因为它只包含 Truth=0 条目,而不包含 Truth=1。您需要发布一个包含 Truth=0 和 1 值的 sn-p。再次,使用
dput(df)并给我们发一个sn-p。如果你拒绝post reproducible code,这是在这里发帖的基本礼貌,这个问题应该并且将会被关闭。
标签: python pandas plot histogram stacked