基于目标变量中标签数量的For循环

2024-10-04 03:16:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我是python新手,正在学习使用for循环来创建自动条形图。下面的代码是为具有2个类(0 ,1)的目标变量编写的。我试图创建一个for循环,它可以根据目标变量中的类数创建x0, x1, x2等等

例如:如果我的目标变量有4个类,那么我需要用Target == 0,1,2,3x创建x0, x1, x2, x3,同样,我需要用trace1trace2trace3trace4为4个类创建x0, x1, x2, x3

有人能帮我吗

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):

Tags: gotarget目标dffordatafeaturex1
1条回答
网友
1楼 · 发布于 2024-10-04 03:16:40

这应该适合您:

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')

相关问题 更多 >