Grundstück pandas DataFrame mit Bedingung Spalten

Ich habe diese Art von pandas.DataFrame. "a","b" sind die Bedingungen, wenn man "x" und "y".

df = pd.DataFrame([[10,20,0,.1], [10,20,1,.5], [100,200,0,.33], [100,200,1,.11]], columns=["a", "b", "x", "y"])
df

Grundstück pandas DataFrame mit Bedingung Spalten

Muss ich plot-Diagramme der (x,y) - Säule mit Bezug auf den gleichen Zustand. Das erwartete Ergebnis plot:

Grundstück pandas DataFrame mit Bedingung Spalten
Grundstück pandas DataFrame mit Bedingung Spalten

Natürlich, dieses Bild ist manuell gegeben durch den folgenden code:

pd.DataFrame([[0,.1],[1,.5]]).plot(kind="line", x=0, y=1, style="-", legend=None, title="a: 10, b: 20")
plt.xlabel("x")
plt.ylabel("y")
plt.figure()
pd.DataFrame([[0,.33],[1,.11]]).plot(kind="line", x=0, y=1, style="-", legend=None, title="a: 100, b: 200")
plt.xlabel("x")
plt.ylabel("y")

Meine Frage ist, wie dynamisch machen, plots wie oben, wenn Sie einen dataframe mit condition Spalten x und y.

Update

Spalte Namen stehen fest. Aber die Werte von Bedingung Spalten dynamisch geändert wird. Also, ich kann nicht mit den Werten 10, 20, 100, 200.

Update2

Wenn ich die unter "filter_with_a_and_b" - Methode, ich denke, dass das problem gelöst:

def filter_with_a_and_b(df, a_b):
    # how to implement?

a_b_list = df.drop_duplicates(["a","b"])
new_df_list = filter_with_a_and_b(df, a_b)
for idx, df in enumerate(new_df_list):
    df.plot(title=a_b_list[idx])
  • was ist die Quelle für Ihre Bedingungen und auf welche Spalten willst du gelten diese Bedingungen?
  • Bitte, siehe update2.
  • Sie wollen also das filtern von Spalten a und b mit den Werten der Spalten a und b, die würden produzieren den gleichen Daten - frame ist, dass das, was Sie wollen? 😉
  • willst du einfach nur plot (x, y) für alle einzigartigen Kombinationen von (a, b)? I. e. wenn Sie drei verschiedene Kombinationen von (a,b) - erzeugen würde drei Grundstücke mit entsprechenden (x,y) - verstehe ich es richtig?
  • ja! Absolut
  • ich aktualisiert meine Antwort, überprüfen Sie bitte

InformationsquelleAutor rkjt50r983 | 2016-03-16
Schreibe einen Kommentar