Ausgabe
Ich möchte einen Wert aus einer bestimmten Spalte in meinem Pandas-Datenrahmen als Beschriftung der Y-Achse verwenden. Der Grund dafür ist, dass sich das Etikett je nach Maßeinheit (UoM) ändern kann – es könnte sich um kg, Anzahl der Beutel usw. handeln.
#create function using plant and material input to chart planned and actual manufactured quantities
def filter_df(df, plant: str = "", material: str = ""):
output_df = df.loc[(df['Plant'] == plant) & (df['Material'].str.contains(material))].reset_index()
return output_df['Planned_Qty_Cumsum'].plot.area (label = 'Planned Quantity'),\
output_df['Goods_Receipted_Qty_Cumsum'].plot.line(label = 'Delivered Quantity'),\
plt.title('Planned and Deliverd Quanties'),\
plt.legend(),\
plt.xlabel('Number of Process Orders'),\
plt.ylabel(output_df['UoM (of GR)']),\
plt.show()
#run function
filter_df(df_yield_data_formatted,'*plant*','*material*')
Beim Ausführen der Funktion erhalte ich folgende Fehlermeldung:
ValueError: Der Wahrheitswert einer Serie ist mehrdeutig. Verwenden Sie a.empty, a.bool(), a.item(), a.any() oder a.all().
Lösung
Ja, das können Sie, aber so, wie Sie es tun, sagen Sie alle Werte des Datenrahmens in dieser Spalte und Sie sollten angeben, welche Zeile und Spalte Sie für die Beschriftung wünschen, verwenden Sie zum Beispiel iloc und es wird funktionieren.
plt.ylabel(df.iloc[2,1])
Beantwortet von – Dini
Antwort geprüft von – David Goodson (FixError Volunteer)