Построить столбцы фрейма данных на основе условий других столбцов в Python - PullRequest
0 голосов
/ 13 апреля 2020

Ниже мой набор данных:

    City    Product Spend_Year  Total_Spend
0   BANGALORE   Gold    2004    248006886
1   BANGALORE   Gold    2005    357076946
2   BANGALORE   Gold    2006    329375735
3   BANGALORE   Platimum    2004    138238363
4   BANGALORE   Platimum    2005    167115119
... ... ... ... ...
67  TRIVANDRUM  Platimum    2005    222789632
68  TRIVANDRUM  Platimum    2006    129408676
69  TRIVANDRUM  Silver  2004    14957733
70  TRIVANDRUM  Silver  2005    27465271
71  TRIVANDRUM  Silver  2006    31632500

Мне нужно построить Город против Total_Spend при выборе одного продукта и Потратьте_Год на все возможные комбинации.

Пример: Участок Город против Итого_Плата для Золотого продукта в 2004 году.

PS: В наборе данных у меня есть 3 категории продуктов, и данные доступны в течение 3 лет.

Любая помощь будет принята с благодарностью.

Ответы [ 2 ]

1 голос
/ 13 апреля 2020

Вы можете использовать seaborn.FaceGrid:

g = sns.FacetGrid(data=df, row='Spend_Year', col='Product')
g = g.map(sns.lineplot, 'City', 'Total_Spend')

Или вы можете использовать groupby():

fig, axes = plt.subplots(3,3)

for (k,d), ax in zip(df.groupby(['City','Spend_Year']), axes.ravel()):
    city, year = k
    d.plot(x='City', y='Total_Spend', ax=ax)

    # extra format with ax if needed
    ax.set_title(f'{city} - {year}')
0 голосов
/ 13 апреля 2020

Приведенный ниже код будет составлять один график для каждой комбинации. Должно быть легко использовать вспомогательные сюжеты matplotlib, чтобы переместить их все в одну фигуру.

import matplotlib.pyplot as plt
for product in df['Product'].unique():
    for syear in df['Spend_Year'].unique():
        plt.figure()
        ax = df.query('Product==@product and Spend_year==@syear').set_index('City')['Total Spend'].plot()
        ax.set_title(f'Product {product} year {syear}')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...