#python #dataframe #for-loop #variables #data-visualization
#python #фрейм данных #цикл for #переменные #визуализация данных
Вопрос:
Я новичок в python и учусь работать над for
циклом для создания автоматической гистограммы. Приведенный ниже код разработан для целевой переменной с 2 классами (0 ,1)
. Я пытаюсь создать for
цикл, который может создавать x0, x1, x2
и так далее в зависимости от количества классов в целевой переменной.
Например: если моя целевая переменная имеет 4 класса, то меня нужно x0, x1, x2, x3
создать с Target == 0,1,2,3
помощью for x
s, а также аналогичным образом мне нужны trace1
, trace2
, trace3
, и trace4
для 4 классов.
Может кто-нибудь, пожалуйста, помочь мне с этим?
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):
Ответ №1:
Это должно сработать для вас:
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')