【发布时间】:2014-06-26 00:50:23
【问题描述】:
我在 Python 中有以下数据框(实际的数据框要大得多,仅提供一个小示例):
A B C D E F
0 0.43 0.52 0.96 1.17 1.17 2.85
1 0.43 0.52 1.17 2.72 2.75 2.94
2 0.43 0.53 1.48 2.85 2.83
3 0.47 0.59 1.58 3.14
4 0.49 0.80
我使用 df.values 将数据框转换为 numpy,然后将其传递给 boxplot。
当我尝试用这个 pandas 数据框制作箱线图时,从每列中选取的值的数量被限制为一列中的最少值数量(在本例中为 F 列)。有什么方法可以对每列的所有值进行箱线图绘制吗?
注意:我使用 df.dropna 删除每列中缺少值的行。但是,这会将数据框的大小调整为列长度的最小公分母,并弄乱绘图。
import prettyplotlib as ppl
import numpy as np
import pandas
import matplotlib as mpl
from matplotlib import pyplot
df = pandas.DataFrame.from_csv(csv_data,index_col=False)
df = df.dropna()
labels = ['A', 'B', 'C', 'D', 'E', 'F']
fig, ax = pyplot.subplots()
ppl.boxplot(ax, df.values, xticklabels=labels)
pyplot.show()
【问题讨论】:
-
你应该发布 numpy/pandas 代码
-
添加了代码。好的,我明白发生了什么。我使用 df.dropna 删除每列中缺少值的行。但是,这会将数据框的大小调整为列长度的最低公分母,并弄乱绘图。有什么解决办法吗?
-
不删除 NaN 怎么样?我认为
boxplot会自己处理 NaN 值。
标签: python pandas boxplot prettyplotlib