Разделение большого набора данных и построение среднего значения в matplotlib - PullRequest
0 голосов
/ 13 марта 2019

У меня большой набор данных с более чем 10000 строк со значениями от 0 до 400 000 000.Я хотел бы представить эти значения в зависимости от среднего значения другого столбца в matplotlib, где ось x увеличивается на 50 000 000, но я не уверен, как это сделать.Я могу построить это, используя панд, но очень хотел бы сделать это, используя matplotlib, но не знаю, как.Вот что я имею в пандах:

mean_values = df.groupby(pd.cut(df['budget_adj'],np.arange(0,4000000000,50000000)))['vote_average'].mean()
mean_values.plot(kind='line',figsize=(12,5))  

1 Ответ

1 голос
/ 13 марта 2019

Кажется, я понял, в чем твоя проблема

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

# Create some data
df = pd.DataFrame({'budget_adj': np.random.uniform(0, 4000000000, 10000),
                   'vote_average': np.random.uniform(0, 100000, 10000)})

# Calculate the mean values
mean_values = df.groupby(pd.cut(df['budget_adj'],np.arange(0,4000000000,50000000)))['vote_average'].mean()

И это то, что я подозреваю, что вы делаете

# This wont work since mean_values.index is an interval
plt.plot(mean_values.index, mean_values) 

Это не сработает, так как индексирование является категориальным интервалом. Чтобы plot работал, ваши значения х должны быть числами. Мы можем преобразовать наши интервалы разными способами

# You can pick the left endpoint...
x_values = [i.left for i in mean_values.index]
# the right endpoint...
x_values = [i.right for i in mean_values.index]
# or the center value.
x_values = [i.mid for i in mean_values.index]

# And NOW you will get no error
plt.plot(x_values, mean_values)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...