• 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
223 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 (40,990 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ź 119 wizyt
pytanie zadane 23 sierpnia 2023 w Python przez benek111 Początkujący (260 p.)
0 głosów
0 odpowiedzi 535 wizyt
0 głosów
0 odpowiedzi 85 wizyt
pytanie zadane 31 sierpnia 2021 w Python przez masteryo Nowicjusz (120 p.)

92,555 zapytań

141,404 odpowiedzi

319,559 komentarzy

61,940 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...