/ / Python: získať dáta z vnoreného diktátu na nakreslenie pruhu - python, pandy, slovník, matplotlib

Python: získať dáta z vnoreného dictu nakresliť bar - python, panda, slovník, matplotlib

Snažím sa získať údaje z tohto dikta:

d= {
"1992":
{ "j": 2048, "f": 1290, "m": 3221, "a": 6994, "ma": 2091, "ju": 688, "jl": 981, "ag": 2389, "s": 3010, "o": 13006, "n": 10477, "d": 6022 },
"1998":
{ "j": 1751, "f": 1056, "m": 2664, "a": 3091, "ma": 1088, "ju": 1215, "jl": 699, "ag": 2108, "s": 1799, "o": 4522, "n": 7200, "d": 5614 }}

a pokračujte s týmto vzorom: ( "Rok (x)": { "mesiac1": hodnota (1), ... mesiac (n): Hodnota (n))}

a zobrazte ich v pruhu, ktorý má v osi x zoznam mesiacov av osi y v roku. Snažil som sa použiť Dataframe riešenie Python diktuje DataFrame Pandas ale nemôžem použiť graf. Matplotlib mi umožňuje vložiť iba jeden rok:

plt.bar(range(len(d)), d.values(), fill=False)

takže myslím, že Pandy "Dataframe" je lepšie. Existuje spôsob, ako získať tieto údaje v tom istom bare?

odpovede:

1 pre odpoveď č. 1

Zdá sa, že potrebujete DataFrame.plot.bar:

df = pd.DataFrame(d)
df.plot.bar()

Ak chcete, nastavte aj poradie months:

names = ["j", "f", "m", "a", "ma","ju", "jl", "ag", "s",  "o", "n", "d"]
df = pd.DataFrame(d).reindex(names)

print (df)
1992  1998
j    2048  1751
f    1290  1056
m    3221  2664
a    6994  3091
ma   2091  1088
ju    688  1215
jl    981   699
ag   2389  2108
s    3010  1799
o   13006  4522
n   10477  7200
d    6022  5614

graf