Mam następujący dataframe w Pythonie (rzeczywista dataframe jest znacznie większy, po prostu prezentuje małą próbkę):Python boxplot z kolumn o różnej długości
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
przekonwertować dataframe do NumPy użyciu df.values a następnie przekazać to do boxplot.
Kiedy próbuję wykreślić boxplot z tej pandasowej ramki danych, liczba wartości wybranych z każdej kolumny jest ograniczona do najmniejszej liczby wartości w kolumnie (w tym przypadku kolumnie F). Czy istnieje sposób, w jaki mogę umieścić wszystkie wartości z każdej kolumny?
UWAGA: Korzystam z df.dropna, aby upuszczać wiersze w każdej kolumnie z brakującymi wartościami. Zmienia to jednak rozmiar ramki danych na najniższy wspólny mianownik długości kolumny i zakłóca drukowanie.
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()
należy opublikować kod numpy/pandy – mrKelley
kod dodaną. Ok, widzę, co się dzieje. Używam df.dropna, aby upuszczać wiersze w każdej kolumnie z brakującymi wartościami. Zmienia to jednak rozmiar ramki danych na najniższy wspólny mianownik długości kolumny i zakłóca drukowanie. Jakieś rozwiązania? – user308827
Co powiesz na to, aby nie upuścić NaN? Myślę, że 'boxplot' będzie sam obsługiwał wartości NaN. – HYRY