Jestem nowy w Pythonie i uczy się pracować na pętli for do tworzenia zautomatyzowanego wykresu słupkowego. Poniższy kod jest opracowywany do zmiennej docelowej z 2 klasami {x1}}. Próbuję utworzyć pętlę for, która może utworzyć x0, x1, x2 i tak dalej na podstawie liczby klas w zmiennej docelowej.

Na przykład: Jeśli moja zmienna docelowa ma 4 klasy, a następnie potrzebuję x0, x1, x2, x3, aby utworzyć Target == 0,1,2,3 dla x s, a także w podobny sposób, który potrzebuję trace1, trace2, trace3 i trace4 dla 4 klas.

Czy ktoś może mi z tym pomóc?

from scipy.stats import skew
from scipy.stats import kurtosis

def plotBarCat(df,feature,target):
    x0 = df[df[target]==0][feature]
    x1 = df[df[target]==1][feature]

    trace1 = go.Histogram(
        x=x0,
        opacity=0.75
    )
    trace2 = go.Histogram(
        x=x1,
        opacity=0.75
    )

    data = [trace1, trace2]
    layout = go.Layout(barmode='overlay',
                      title=feature,
                       yaxis=dict(title='Count'
        ))
    fig = go.Figure(data=data, layout=layout)

    py.iplot(fig, filename='overlaid histogram')

    def DescribeFloatSkewKurt(df,target):
0
SMP 24 październik 2020, 21:51

1 odpowiedź

Najlepsza odpowiedź

To powinno działać dla Ciebie:

def plotBarCat(df,feature,target):
    # use set to get unique classes
    classes = set(df[target])
    # create list for traces
    data = []
    
    for c in classes:
        z = df[df[target] == c][feature]
        trace = go.Histogram(x=z, opacity=0.75)
        data.append(trace)

    layout = go.Layout(barmode='overlay',
                      title=feature,
                       yaxis=dict(title='Count'
        ))
    fig = go.Figure(data=data, layout=layout)

    py.iplot(fig, filename='overlaid histogram')
1
JAV 24 październik 2020, 21:43