我在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数据框绘制一个boxplot时,从每一列中选取的值的数量被限制为一列中的最小值(在本例中是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()
正确的方法是使用
pandas
中的.boxplot()
,这样nan
就可以正确处理:相关问题 更多 >
编程相关推荐