gpt4 book ai didi

python - Pandas 中的加权箱线图

转载 作者:太空狗 更新时间:2023-10-29 19:28:38 27 4
gpt4 key购买 nike

对于下面的数据框(df),

     ColA      ColA_weights      ColB   ColB_weights
0 0.038671 1073 1.859599 1
1 20.39974 57362 10.59599 1
2 10.29974 5857 2.859599 1
3 5.040000 1288 33.39599 1
4 1.040000 1064 7.859599 1

我想画一个加权箱线图,其中每个箱子的权重分别由 ColA_weights 和 ColB_weights 给出,我只是这样做

df.boxplot(fontsize=12,notch=0,whis=1.5,vert=1,widths=0.2)

不过好像没有规定要包含权重。有什么解决办法吗?

谢谢!

最佳答案

正如评论中所建议的,这是一种制作列表的方法,其中每个条目的显示次数与权重指示的次数一样多。我认为这不是最聪明的解决方案,有人可以想出更好的解决方案。

我的示例仅适用于 A 列,但您应该能够以相同的方式在 B 列上使用它:

import matplotlib.pyplot as plt

weighted_appearances = []
for index, row in df.iterrows():
weighted_row = [row.ColA]*row.ColA_weights
weighted_appearances += weighted_row

plt.boxplot(weighted_appearances)
plt.show()

优点:编写起来非常简单的解决方案,理论上适用于所有情况(如果您的权重不是整数,您将不得不以您认为可以接受的方式转换/舍入它们)

缺点:效率不高,如果您使用非常大的权重,则必须找到一种方法来“缩小”这些权重以获得合理的内存使用量。

关于python - Pandas 中的加权箱线图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23412533/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com