Ich habe einige Daten, die in einem Wörterbuch mit Datenrahmen gespeichert sind. Die realen Daten sind mit einem Index von bis zu 3000 und mehr Spalten viel größer.
Am Ende möchte ich ein Violinplot von zwei der Spalten in den Datenrahmen erstellen, jedoch für mehrere Wörterbucheinträge. Das Wörterbuch hat ein Tupel als Schlüssel und ich möchte alle Einträge sammeln, deren erste Zahl gleich ist.
Meine Idee war, dass ich es in einem anderen Wörterbuch neu anordnen und dann den Geigenplot zeichnen könnte. Angenommen, „Data_1“ und „Data_4“ sind von Interesse. Dann durchlaufe ich die Schlüssel in dict wie folgt.
new_dict = {}
for col in ['Data_1','Data_4']:
df = pd.DataFrame()
for i in [5,7]:
temp = []
for key, value in dict.items():
if key[0]==i:
temp.extend(value[col])
df[i] = temp
new_dict[col] = df
for key, value in new_dict.items():
fig, ax = plt.subplots()
ax.violinplot(value, showmeans= True)
ax.set(title = key, xlabel = 'Section', ylabel = 'Value')
ax.set_xticks(np.arange(1,3), labels=['5','7'])
Obwohl ich das gewünschte Ergebnis erhalte, ist es sehr umständlich, das Wörterbuch neu anzuordnen. Könnte dies schneller erfolgen? Da es sich um dieselbe Spalte handelt, die ich für jeden Wörterbucheintrag haben möchte, bin ich der Meinung, dass dies der Fall sein sollte.
Ich habe einige Daten, die in einem Wörterbuch mit Datenrahmen gespeichert sind. Die realen Daten sind mit einem Index von bis zu 3000 und mehr Spalten viel größer. Am Ende möchte ich ein Violinplot von zwei der Spalten in den Datenrahmen erstellen, jedoch für mehrere Wörterbucheinträge. Das Wörterbuch hat ein Tupel als Schlüssel und ich möchte alle Einträge sammeln, deren erste Zahl gleich ist. [code] import pandas as pd import numpy as np import matplotlib.pyplot as plt
data_dict = { (5, 1): pd.DataFrame({"Data_1": [0.235954, 0.739301, 0.443639], "Data_2": [0.069884, 0.236283, 0.458250], "Data_3": [0.170902, 0.496346, 0.399278], "Data_4": [0.888658, 0.591893, 0.381895]}), (5, 2): pd.DataFrame({"Data_1": [0.806812, 0.224321, 0.504660], "Data_2": [0.070355, 0.943047, 0.579285], "Data_3": [0.526866, 0.251339, 0.600688], "Data_4": [0.283107, 0.409486, 0.307315]}), (7, 3): pd.DataFrame({"Data_1": [0.415159, 0.834547, 0.170972], "Data_2": [0.125926, 0.401789, 0.759203], "Data_3": [0.398494, 0.587857, 0.130558], "Data_4": [0.202393, 0.395692, 0.035602]}), (7, 4): pd.DataFrame({"Data_1": [0.923432, 0.622174, 0.185039], "Data_2": [0.759154, 0.126699, 0.783596], "Data_3": [0.075643, 0.287721, 0.939428], "Data_4": [0.983739, 0.738550, 0.108639]}) } [/code] Meine Idee war, dass ich es in einem anderen Wörterbuch neu anordnen und dann den Geigenplot zeichnen könnte. Angenommen, „Data_1“ und „Data_4“ sind von Interesse. Dann durchlaufe ich die Schlüssel in dict wie folgt. [code]new_dict = {} for col in ['Data_1','Data_4']: df = pd.DataFrame() for i in [5,7]: temp = [] for key, value in dict.items(): if key[0]==i: temp.extend(value[col]) df[i] = temp new_dict[col] = df [/code] Das macht dann das folgende Diktat. [code]new_dict = {'Data_1': 5 7 0 0.235954 0.415159 1 0.739301 0.834547 2 0.443639 0.170972 3 0.806812 0.923432 4 0.224321 0.622174 5 0.504660 0.185039, 'Data_4': 5 7 0 0.888658 0.202393 1 0.591893 0.395692 2 0.381895 0.035602 3 0.283107 0.983739 4 0.409486 0.738550 5 0.307315 0.108639} [/code] Die ich dann durchlaufe, um die Geigendiagramme für Data_1und Data_4 zu erstellen. [code]for key, value in new_dict.items(): fig, ax = plt.subplots() ax.violinplot(value, showmeans= True) ax.set(title = key, xlabel = 'Section', ylabel = 'Value') ax.set_xticks(np.arange(1,3), labels=['5','7']) [/code] Obwohl ich das gewünschte Ergebnis erhalte, ist es sehr umständlich, das Wörterbuch neu anzuordnen. Könnte dies schneller erfolgen? Da es sich um dieselbe Spalte handelt, die ich für jeden Wörterbucheintrag haben möchte, bin ich der Meinung, dass dies der Fall sein sollte.
Ich habe einige Daten, die in einem Wörterbuch mit Datenrahmen gespeichert sind. Die realen Daten sind mit einem Index von bis zu 3000 und mehr Spalten viel größer.
Am Ende möchte ich ein Violinplot...
Ich habe ein Wörterbuch mit mehreren Einträgen
res = {'status': 'done', 'nextLogId': 'AQAAAXb', 'logs': [{'content': {'service': 't2pipeline', 'tags': , 'timestamp': '2021-01-05T05:25:03.416Z',...
Ich möchte ein Programm in C# erstellen, das Wörter findet, die zu einer bestimmten festgelegten Richtlinie passen. Zum Beispiel das längste (oder andere Attribut-) Wort, das vollständig mit Ihrer...
Zuerst habe ich versucht, ein Wörterbuch einmal zu durchlaufen, aber jetzt versuche ich, eine effiziente Möglichkeit zu finden, ein Wörterbuch eine bestimmte Anzahl von Malen zu durchlaufen oder ob...
Ich schreibe eine Methode, mit der jedes Element in einem verschachtelten Wörterbuch aktualisiert werden kann. Die Methode nimmt den Pfad, den JSON und den Wert ein:
from functools import reduce...