Wenn Sie einem DataFrame spaltenweise einen Wert vom Typ DataFrame zuweisen, kann der Wert auch dann zugewiesen werden, wenn die Indizes übereinstimmen, auch wenn die Datenreihenfolge unterschiedlich ist. Es kann hilfreich sein zu wissen, wann einige Spalten aus dem DataFrame extrahiert, gemäß den Bedingungen verarbeitet und zurückgegeben werden.
Bereiten Sie das Modul und die Daten vor
import numpy as np
import pandas as pd
# 0-4 in einer Folge von 19*Formatieren Sie auf 5 und konvertieren Sie in Datenrahmen
df = pd.DataFrame(np.arange(20).reshape((4,5)), columns = list("abcde"))
# a b c d e
# 0 0 1 2 3 4
# 1 5 6 7 8 9
# 2 10 11 12 13 14
# 3 15 16 17 18 19
Erstellen Sie einen DataFrame mit einigen extrahierten Spalten und verarbeiten Sie die Werte
df_e_1 = df.loc[[0,2], ["e"]]
# e
# 0 4
# 2 14
df_e_1["e"] += 300
# e
# 0 304
# 2 314
Erstellen Sie einen DataFrame mit einigen extrahierten Spalten und kombinieren Sie ihn mit den oben verarbeiteten Daten.
df_e_2 = df.loc[[1,3], ["e"]]
# e
# 1 9
# 3 19
df_e = pd.concat([df_e_1, df_e_2])
# e
# 0 304
# 2 314
# 1 9
# 3 19
Ich dachte, wenn df_e hier nicht in Indexreihenfolge angeordnet wäre, wäre die Datenreihenfolge nicht in Ordnung, selbst wenn sie dem ursprünglichen DataFrame zugewiesen wäre ... Selbst wenn Sie es so ersetzen, wie es ist, stimmt es mit dem Index überein und sortiert und ersetzt es automatisch. Bitte beachten Sie die e-Spalte unten
df["e"] = df_e
print(df)
# a b c d e
# 0 0 1 2 3 304
# 1 5 6 7 8 9
# 2 10 11 12 13 314
# 3 15 16 17 18 19