Hallo,
ich bin leider nicht fündig geworden.
Gibt es eine Möglichkeit nur eine Zeile in einem DataFrame in eine Spalte umzuwandeln/zu transponieren?
Viele Grüße
Karambit
Nur eine Zeile transponieren
Danke für die Antwort, aber ich meinte nur, genau eine Zeile.
Location First Tooltip
Period
2016 Afghanistan 0.0
2015 Afghanistan 4.8
2010 Afghanistan 5.1
2005 Afghanistan 6.3
2000 Afghanistan 5.7
So sieht das DataFrame aus, aber ich möchte es so umwandeln:
Afghanistan <anderes Land> <anderes Land> ...
Period
2016 0.0
2015 4.8
2010 5.1
2005 6.3
2000 5.7
Vielleicht eine einfachere Idee?
Gruß
Karambit
Location First Tooltip
Period
2016 Afghanistan 0.0
2015 Afghanistan 4.8
2010 Afghanistan 5.1
2005 Afghanistan 6.3
2000 Afghanistan 5.7
So sieht das DataFrame aus, aber ich möchte es so umwandeln:
Afghanistan <anderes Land> <anderes Land> ...
Period
2016 0.0
2015 4.8
2010 5.1
2005 6.3
2000 5.7
Vielleicht eine einfachere Idee?
Gruß
Karambit
Leider versteht man die Aufgabenstellung überhaupt nicht du hast nach einer Möglichkeit gefragt eine Zeile in eine Spalte umzuwandeln diese Frage hat Sirius dir richtig beantwortet , wenn du nur eine Zeile gewandelt haben möchtest.
Beispiel:
Ich habe mal versucht deinen Datenframe nachzubauen jedoch sieht man weder die Spaltennamen etc deswegen habe Ich improvisiert:
Ausgabe:
Da Ich nicht genau weiß was du möchtest,da deine zweite Frage für mich ehr wie ein formatieren des Datenframes klingt als nach transpose:
Ausgabe:
Wann benutzt man transpose? Meiner Meinung nach wenn man die Spalten / Columns und die Zeilen/ Rows getauscht haben möchte bzw Index & Columns:
Ausgabe:
Ausgabe:
Zum Abschluss noch ein kleiner Tipp .... SO WIRD ES NICHT KLAPPEN:
df_index = pd.Index([2016, 2015, 2010, 2005, 2000])
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7]}, index=df_index)
df.index = df.index.set_names("Period")
df = df.drop(columns=0)
df = df.rename(columns={1: "Afghanistan"})
afghanistan_series = df.loc[2016]
afghanistan_series = afghanistan_series.T
Wie man sieht macht es kein Unterschied da wird mit loc eine Series zurückbekommen und diese haben keine Columns ....
Ausgabe:
Ausgabe :
Man sieht hier den Unterschied noch besser wenn es mehrere Werte werden:
Ausgabe:
Ausgabe:
Ich hoffe Ich konnte dir helfen.
Beispiel:
Ich habe mal versucht deinen Datenframe nachzubauen jedoch sieht man weder die Spaltennamen etc deswegen habe Ich improvisiert:
Code: Alles auswählen
df_index = pd.Index([2016, 2015, 2010, 2005, 2000])
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7]}, index=df_index)
df.index = df.index.set_names("Period")
Code: Alles auswählen
0 1
Period
2016 Afghanistan 0.0
2015 Afghanistan 4.8
2010 Afghanistan 5.1
2005 Afghanistan 6.3
2000 Afghanistan 5.7
Code: Alles auswählen
df_index = pd.Index([2016, 2015, 2010, 2005, 2000])
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7]}, index=df_index)
df.index = df.index.set_names("Period")
df = df.drop(columns=0)
df = df.rename(columns={1: "Afghanistan"})
Ausgabe:
Code: Alles auswählen
Afghanistan
Period
2016 0.0
2015 4.8
2010 5.1
2005 6.3
2000 5.7
Wann benutzt man transpose? Meiner Meinung nach wenn man die Spalten / Columns und die Zeilen/ Rows getauscht haben möchte bzw Index & Columns:
Code: Alles auswählen
deutschland_df = pd.DataFrame([54, 74, 90, 2010, 2022],
index=["Deutschland", "Deutschland", "Deutschland", "Deutschland", "Deutschland"])
Code: Alles auswählen
0
Deutschland 54
Deutschland 74
Deutschland 90
Deutschland 2010
Deutschland 2022
Code: Alles auswählen
deutschland_transpose = deutschland_df.transpose()
Code: Alles auswählen
Deutschland Deutschland Deutschland Deutschland Deutschland
0 54 74 90 2010 2022
Zum Abschluss noch ein kleiner Tipp .... SO WIRD ES NICHT KLAPPEN:
Code: Alles auswählen
df_index = pd.Index([2016, 2015, 2010, 2005, 2000])
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7]}, index=df_index)
df.index = df.index.set_names("Period")
df = df.drop(columns=0)
df = df.rename(columns={1: "Afghanistan"})
afghanistan_series = df.loc[2016]
Ausgabe:
[code]
Afghanistan 0.0
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7]}, index=df_index)
df.index = df.index.set_names("Period")
df = df.drop(columns=0)
df = df.rename(columns={1: "Afghanistan"})
afghanistan_series = df.loc[2016]
afghanistan_series = afghanistan_series.T
Code: Alles auswählen
Ausgabe:
[code]
Afghanistan 0.0
Code: Alles auswählen
afghanistan_series = pd.DataFrame(df.loc[2016])
Code: Alles auswählen
2016
Afghanistan 0.0
Code: Alles auswählen
afghanistan_series = pd.DataFrame(df.loc[2016])
afghanistan_series = afghanistan_series.T
Code: Alles auswählen
Afghanistan
2016 0.0
Man sieht hier den Unterschied noch besser wenn es mehrere Werte werden:
Code: Alles auswählen
df_index = pd.Index([2016, 2015, 2010, 2005, 2000])
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7],
2: [1, 2, 3, 4, 5],
3: [6, 7, 8, 9, 10],
4: [11, 12, 13, 14, 15]
},
index=df_index)
df_series_to_frame = pd.DataFrame(df.loc[2016])
Code: Alles auswählen
2016
0 Afghanistan
1 0
2 1
3 6
4 11
Code: Alles auswählen
df_index = pd.Index([2016, 2015, 2010, 2005, 2000])
df = pd.DataFrame({0: ["Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan", "Afghanistan"],
1: [0.0, 4.8, 5.1, 6.3, 5.7],
2: [1, 2, 3, 4, 5],
3: [6, 7, 8, 9, 10],
4: [11, 12, 13, 14, 15]
},
index=df_index)
df_series_to_frame = pd.DataFrame(df.loc[2016]).T
Code: Alles auswählen
0 1 2 3 4
2016 Afghanistan 0 1 6 11
Ich hoffe Ich konnte dir helfen.
Eine Vision ohne Aktion bleibe eine Illusion