0 Daumen
289 Aufrufe

Ich habe ein pandas s und ich möchte es in einen dataframe verwandeln. Der Index ist ein Array aus zwei Elementen. Ich wünschte, sein erstes Element wäre die Säule geblieben. Ich hätte mir gewünscht, dass die zweite Spalte ein neues Attribut wäre. Das heißt, zu transformieren:

[truc19, GK]    -0.074581
[truc19, UNA]    0.135000
[truc20, GK]    -0.549393
[truc20, UNA]    0.087734
...

in

truc19     truc20    party
-0.074581  0.135000  GK
-0.549393  0.087734  UNA
Avatar von

1 Antwort

0 Daumen

Antwort mit KI erzeugt

Um aus der gegebenen Serie einen Dataframe mit der gewünschten Struktur zu erstellen, können wir folgende Schritte in Python unter Verwendung der Bibliothek Pandas vornehmen:

1. Umwandeln der Serie in einen Dataframe: Da die Serie einen doppelten Index hat, können wir ihn zuerst in einen Dataframe umwandeln, wobei jede Ebene des Indexes eine eigene Spalte im Dataframe wird.

2. Umbenennen der Spalten: Wir passen die Namen der Spalten an, um sie gemäß der Aufgabenstellung zu benennen.

3. Transformation der Daten: Wenn nötig, passen wir die Struktur des Dataframes weiter an, um genau das gewünschte Format zu erreichen.

Angenommen, die ursprüngliche Serie heißt s. Hier ist ein Beispielcode, der beschreibt, wie man dies erreichen kann:

python
import pandas as pd

# Angenommen, s ist die ursprüngliche Serie mit einem MultiIndex.
data = {
    ('truc19', 'GK'): -0.074581,
    ('truc19', 'UNA'): 0.135000,
    ('truc20', 'GK'): -0.549393,
    ('truc20', 'UNA'): 0.087734
}

# Erstellen der Serie mit MultiIndex
s = pd.Series(data)

# Umwandeln der Serie in einen DataFrame
df = s.reset_index()

# Umbenennen der Spalten
df.columns = ['FirstElement', 'Party', 'Value']

# Um die Spalten besser den Anforderungen anzupassen
# könnte es notwendig sein, die DataFrame weiter zu transformieren.
# Eine Möglichkeit (hängt von den genauen Anforderungen ab),
# ist die Anwendung eines Pivots oder einer ähnlichen Transformation
# um "FirstElement" und "Party" neu zu organisieren.

# Die endgültige Struktur, wie sie in der Frage beschrieben wurde,
# ist nicht direkt erreichbar mit Standard-Pandas-Operationen,
# ohne eine klarere Definition davon, wie die Daten aggregiert oder
# in Spalten `truc19` und `truc20` gegliedert werden sollen.
# Ein sinnvoller nächster Schritt könnte jedoch das Pivotieren des DataFrames sein:
df_pivot = df.pivot(index='Party', columns='FirstElement', values='Value').reset_index()

print(df_pivot)


Wichtig: Die Datenstruktur, die in der Frage für das Zielbeispiel angegeben wurde, ist möglicherweise nicht vollständig klar oder direkt aus der gegebenen Eingabe umsetzbar, da sie eine Transponierung und möglicherweise eine Aggregation (z.B. durch Mitteln) oder eine Neuorganisation der Daten darstellt, die spezifische Anforderungen hat, die nicht vollständig erläutert wurden. Je nachdem, wie die Eingaben genau aussehen und was mit den Daten erreicht werden soll, könnte der Code angepasst werden müssen.
Avatar von

Ein anderes Problem?

Stell deine Frage

Willkommen bei der Stacklounge! Stell deine Frage einfach und kostenlos

x
Made by a lovely community