У меня есть фрейм данных, который я вырезал следующим образом:
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
организует свои корзины.Это списки, или кортежи, или что-то еще?