Передача бункеров, вырезанных с помощью панд, в функцию - PullRequest
0 голосов
/ 18 декабря 2018

У меня есть фрейм данных, который я вырезал следующим образом:

def binning(col, cut_points, labels = None):
    '''
    From https://www.analyticsvidhya.com/blog/2016/01/12-pandas-techniques-python-data-manipulation/
    '''
    #   Define min and max values:
    minval = col.min()
    maxval = col.max()
    #   Create list by adding min and max to cut_points
    break_points = [minval] + cut_points + [maxval]

    #   If no labels provided, use default labels 0 ... (n-1)
    if not labels:
        labels = range(len(cut_points)+1)

    #   Binning using cut function of pandas
    colBin = pd.cut(col,bins=break_points,labels=labels,include_lowest=True, duplicates = 'drop')
    return colBin

cut_points = [0.5,3.5,4.5]
labels = ["z<0.5","0.5<=z<3.5","3.5<z<=4.5","z>4.5"]
sources["z_bin"] = binning(sources["z"], cut_points, labels)
print(pd.value_counts(sources["z_bin"], sort=False))

, и я хотел бы передать каждый бин в функцию, которую я написал, чтобы построить график рассеяния.Я знаю, что pandas имеет функции построения и обертки для matplotlib, но я бы хотел использовать свою пользовательскую функцию, если это возможно, чтобы сохранить формат в соответствии с остальными графиками.Моя пользовательская функция вызывается следующим образом:

plotSelected(x, y, name_for_y_series, ...a couple of other arguments)

Так есть ли способ, которым я могу построить график серии y в сравнении со значениями в столбце x?Что-то вроде

plotSelected(x_binned, y, name_for_y_series, ...a couple of other arguments)

Я не знаю, как pandas организует свои корзины.Это списки, или кортежи, или что-то еще?

...