Wykres dla jednej "danej"

0

Napisałem taki oto program do wyświetlania wykresu:

import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = (14,5)
df_k = pd.read_csv("smiertelnosc_polska_kobiety.csv", index_col="Wiek")
df_m = pd.read_csv("smiertelnosc_polska_mezczyzni.csv", index_col="Wiek")
years = df_k.columns.str.strip('Rok_')
df_k.columns=years.astype(int)
plt.style.use('ggplot')
df_k.plot(kind='bar')
plt.ylabel('Prawdopodbieństwo smierci-kobiety')

years = df_m.columns.str.strip('Rok_')
df_m.columns=years.astype(int)
plt.style.use('ggplot')
df_m.plot(kind='bar')
plt.ylabel('Prawdopodbieństwo smierci-faceci')

Zastanawiam się nad tym, jak zrobić aby pojawił mi się tylko jeden słupek, dla wybranego roku, np 2010.

0

Doprecyzuj, jakie masz dane i jak to ma wyglądać.

Chcesz dostać tylko jeden słupek na całym wykresie dla konkretnego roku, czy chcesz po jednym słupku dla każdego roku, a na wykresie dostajesz ich wiele?

0

Dokładnie chce aby dla każdego wieku wyświetlił mi się słupek tylko dla 2010 roku na przykład.

1

Czyli chcesz po prostu odsiać dane po roku?

Jeśli interesuje Cię konkretnie rok 2010:

df = df.loc[df['Year'] == 2010]

Jeśli interesuje Cię np. rok 2005, 2010 i 2015:

df = df.loc[df['Year'].isin([2005, 2010, 2015])]

Jeśli interesują Cię np. daty po 2008:

df = df.loc[df['Year'] > 2008]

Trik jest taki, że warunek wewnątrz zwraca tak naprawdę obiekt Series - zawierający wartości True / False zależnie od tego, czy jest spełniony dla danego wiersza :) Używając tej własności i loc możesz wyłuskać z danych jakiś interesujący Cię podzbiór i dla niego zrobić wykres.

Sam spójrz:

>>> import pandas as pd
>>> df = pd.DataFrame({'a': [1,3,4,6,7], 'b': [2,1,4,9,2]})
>>> df
   a  b
0  1  2
1  3  1
2  4  4
3  6  9
4  7  2
>>> df['a'] > df['b']
0    False
1     True
2    False
3    False
4     True
dtype: bool
>>> a = df['a'] > 2001
>>> type(a)
<class 'pandas.core.series.Series'>
>>> df2 = df.loc[df['a'] >= 3]
>>> df2
   a  b
1  3  1
2  4  4
3  6  9
4  7  2
>>>

Lektura o pd.DataFrame.loc

1 użytkowników online, w tym zalogowanych: 0, gości: 1