Ошибка типа: <lambda>() принимает как минимум 2 аргумента (1 дано) - PullRequest
0 голосов
/ 26 ноября 2018
ranges = (-0.4, -0.35, -0.3, -0.25, -0.2, -0.15, -0.1, -0.05, 0, 0.05, 0.1, 0.15 ,0.2, 0.25, 0.3, 0.35, 0.4)
number_observations =
df.groupby(pandas.cut(df['price_variation'], ranges)).count()

matplotlib.pyplot.bar(x = ranges, y = number_observations)

Извините, относительно новый для StackOverflow, а также Python.У меня есть база данных 20.000 Price_variation.Благодаря второй строке кода я сгруппировал их по диапазону, но я не могу отобразить результат в виде графика.Кто-то понимает сообщение об ошибке?Или есть другое предложение для меня, чтобы отобразить результат?

Большое спасибо за помощь !!

1 Ответ

0 голосов
/ 27 ноября 2018

y не является действительным аргументом для bar графиков.Вам необходимо указать height.Поскольку у вас есть непрерывные ячейки с равным интервалом, вы можете указать ширину ячейки и выравнивание по краям, чтобы они выглядели так, как должны.

Образцы данных

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

df = pd.DataFrame({'price_variation': np.random.normal(0,0.12,10000)})

ranges = (-0.4, -0.35, -0.3, -0.25, -0.2, -0.15, -0.1, -0.05, 0, 0.05, 0.1, 0.15 ,0.2, 0.25, 0.3, 0.35, 0.4)
number_observations = df.groupby(pd.cut(df['price_variation'], ranges)).count()

График

# Get the bins and alignment correct
plt.bar(x=ranges[:-1], 
        height=number_observations.price_variation.values,
        width=np.diff(ranges)[0], 
        ec='k',
        align='edge')
plt.show()

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...