• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python Pandas - tworzenie wykresu z wykorzystaniem dodanej tabeli

Object Storage Arubacloud
0 głosów
231 wizyt
pytanie zadane 15 kwietnia 2021 w Python przez T100 Obywatel (1,450 p.)

Witam. Dodałem tabelę do istniejącego już pliku csv: 

import pandas as pd
import plotly.express as px
from google.colab import drive

df = pd.read_csv('winequality-red.csv', delimiter=';')

conditions = [
    (df['alcohol'] < (df['alcohol'].mean() - df['alcohol'].std())),
    (df['alcohol'] > (df['alcohol'].mean() - df['alcohol'].std())) & (df['alcohol'] < (df['alcohol'].mean() + df['alcohol'].std())),
    (df['alcohol'] > (df['alcohol'].mean() + df['alcohol'].std())),
    ]

# create a list of the values we want to assign for each condition
values = ['low', 'mid', 'high']

# create a new column and use np.select to assign values to it using our lists as arguments
df['alcohol_cat'] = np.select(conditions, values)

# display updated DataFrame
df.head(100)

Jednak za każdym razem gdy próbowałem utworzyć wykres z wykorzystaniem wartości z tabeli "alcohol_cat" to otrzymywałem komunikaty o błędach.

 

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
from google.colab import drive

df = pd.read_csv('winequality-red.csv', delimiter=';')

conditions = [
    (df['alcohol'] < (df['alcohol'].mean() - df['alcohol'].std())),
    (df['alcohol'] > (df['alcohol'].mean() - df['alcohol'].std())) & (df['alcohol'] < (df['alcohol'].mean() + df['alcohol'].std())),
    (df['alcohol'] > (df['alcohol'].mean() + df['alcohol'].std())),
    ]

# create a list of the values we want to assign for each condition
values = ['low', 'mid', 'high']

# create a new column and use np.select to assign values to it using our lists as arguments
df['alcohol_cat'] = np.select(conditions, values)

df = pd.read_csv('winequality-white.csv')
subjects = ['3', '4', '5', '6', '7', '8']
dataset = df.groupby('alcohol_cat')[subjects].mean()

indx = np.arange(len(subjects))
score_label = np.arange(0, 110, 10)
L = list(dataset.T['low'])
M = list(dataset.T['mid'])
H = list(dataset.T['high'])

bar_width = 0.35

fig, ax = plt.subplots()
barLow = ax.bar(indx - bar_width/2, L, bar_width, label='L')
barMid = ax.bar(indx + bar_width/2, M, bar_width, label='M')
barHigh = ax.bar(indx + bar_width/2, H, bar_width, label='H')

# inserting x axis label
ax.set_xticks(indx)
ax.set_xticklabels(subjects)

# inserting y axis label
ax.set_yticks(score_label)
ax.set_yticklabels(score_label)

# inserting legend
ax.legend()

def insert_data_labels(bars):
	for bar in bars:
		bar_height = bar.get_height()
		ax.annotate('{0:.0f}'.format(bar.get_height()),
			xy=(bar.get_x() + bar.get_width() / 2, bar_height),
			xytext=(0, 3),
			textcoords='offset points',
			ha='center',
			va='bottom'
		)

insert_data_labels(L)
insert_data_labels(M)
insert_data_labels(H)


plt.show()

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import plotly.express as px
from google.colab import drive


df = pd.read_csv('winequality-red.csv', delimiter=';')

conditions = [
    (df['alcohol'] < (df['alcohol'].mean() - df['alcohol'].std())),
    (df['alcohol'] > (df['alcohol'].mean() - df['alcohol'].std())) & (df['alcohol'] < (df['alcohol'].mean() + df['alcohol'].std())),
    (df['alcohol'] > (df['alcohol'].mean() + df['alcohol'].std())),
    ]

# create a list of the values we want to assign for each condition
values = ['low', 'mid', 'high']

df.pivot(index='quantity', columns='quality', values='alcohol_cat')

plt.show()

 

Moje pytanie brzmi czy jest możliwe utworzenie wykresu z danymi z dodanej tabeli czy po prostu mój kod jest nieprawidłowy? Z góry dziękuję za pomoc.

1 odpowiedź

0 głosów
odpowiedź 15 kwietnia 2021 przez reaktywny Nałogowiec (41,290 p.)
Na pewno się da. A spróbuj z kluczem "alcohol" zamiast "alcohol_cat" (nie wiem czy pomoże, ale spróbować warto)..  Jest podany niewłaściwy klucz (tak wynika z błędu).

Podobne pytania

0 głosów
1 odpowiedź 136 wizyt
pytanie zadane 23 sierpnia 2023 w Python przez benek111 Początkujący (260 p.)
0 głosów
0 odpowiedzi 570 wizyt
0 głosów
0 odpowiedzi 89 wizyt
pytanie zadane 31 sierpnia 2021 w Python przez masteryo Nowicjusz (120 p.)

92,757 zapytań

141,679 odpowiedzi

320,429 komentarzy

62,101 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...