Einige Möglichkeiten, einer erstellten Tabelle neue Spalten und Zeilen hinzuzufügen.
Es gibt andere Funktionen und Methoden, die verwendet werden können, aber vorerst nur die Grundlagen.
Basistabellenerstellung
row0 = [1, 2, 3]
row1 = [10, 20, 30]
row2 = [100, 200, 300]
df = pd.DataFrame([row0,row1,row2], columns=['col0','col1','col2'])
df.index = ['row0', 'row1', 'row2']
df
・ Df ['A'] ・ Methode zuweisen ・ Join-Methode ・ Concat-Funktion
■df['A']
df['A'] = B
└ "df": Originaltabelle
└ "A": Name der hinzuzufügenden Spalte
└ "B": Was hinzuzufügen ist
Sie können relativ frei angeben, was Sie hinzufügen möchten. Es können numerische Werte, Werte, Tabellendaten, Formeln, Listen usw. verwendet werden.
** ▼ Fallstudie ** ① Spalte hinzufügen (Liste) ② Hinzufügen von Spalten (numerischer Wert) ③ Spalte (Tabelle) hinzufügen ④ Spalte (Formel) hinzufügen
Spalte hinzufügen (Liste)
df['col3'] = [4, 40, 400]
df
Spalte (Nummer) hinzufügen
df['col3'] = 4
df
Spalte (Tabelle) hinzufügen
df['col3'] = df['col2']
df
Spalte hinzufügen (Formel)
df['col3'] = df['col2'] * 100
df
・ Nicht überschrieben ・ Für Spaltennamen ist kein Kontingent erforderlich -Wenn das Element in der Liste angegeben ist, muss es mit der Anzahl der Zeilen in der Basistabelle übereinstimmen.
・ Kein Spaltenname TypeError: assign() takes 1 positional argument but 2 were given
・ Die Anzahl der Elemente in der Liste stimmt nicht überein ValueError: Length of values does not match length of index
1 Zeile hinzugefügt
df.assign(A=[1,2,3])
1 Spalte hinzugefügt (Tabellendaten / Formel)
df.assign(A=df['col0']*100)
2 Spalten hinzugefügt
df.assign(A=[1,2,3], B=100)
Wenn Sie "Spaltenname = Inhalt" hinzufügen, erhöht sich die Anzahl der Spalten.
join(dfA, rsuffix='_a')
└ "dfA": Zu verbindende Tabelle
└ "rsuffix = '_ a'": Wenn die Spaltennamen dupliziert werden, fügen Sie "_a" (optional) zu den hinzugefügten Spaltennamen hinzu.
(1) Fügen Sie eine Tabelle mit demselben Zeilennamen hinzu (keine doppelten Spaltennamen). (2) Fügen Sie eine Tabelle mit nicht vorhandenen Zeilennamen hinzu ③ Wenn der Spaltenname dupliziert wird ④ Wenn einige Spaltennamen dupliziert werden
Wenn der Zeilenname mit dem Zeilennamen der Basistabelle übereinstimmt und sich der Spaltenname nicht mit dem vorhandenen überschneidet.
Tabelle mit demselben Zeilennamen
dfA = pd.DataFrame([100,200,300])
dfA.index = ['row0', 'row1', 'row2']
dfA
** ▼ Hinzufügen **
hinzufügen
df.join(dfA)
Eine neue Spalte wurde hinzugefügt.
Wenn es einen Zeilennamen gibt, der in der Basistabelle nicht vorhanden ist └ ** Der Basistabelle werden keine neuen Zeilen hinzugefügt **. └ ** Daten, deren Zeilennamen nicht übereinstimmen, sind NaN ** (fehlender Wert).
Tabelle mit nicht vorhandenen Zeilennamen
dfB = pd.DataFrame([100,200,300])
dfB.index = ['row0', 'XXX', 'YYY']
dfB
** ▼ Hinzufügen **
hinzufügen
df.join(dfB)
Wenn der Spaltenname dupliziert wird, geben Sie das letzte Zeichen an, das dem doppelten Spaltennamen mit "rsuffix = '_ a'" hinzugefügt werden soll.
** ▼ Optionen **
"Rsuffix = '_ a'": ** Fügen Sie das angegebene Zeichen zum doppelten Spaltennamen hinzu **, der hinzugefügt werden soll (Abkürzung für das rechte Suffix)
"Lsuffix = '_ a'": ** Fügen Sie das angegebene Zeichen zum vorhandenen doppelten Spaltennamen hinzu ** (Abkürzung für das linke Suffix)
Doppelter Spaltenname
dfC = pd.DataFrame([100,200,300], columns=['col0'])
dfC.index = ['row0', 'row1', 'XXX']
dfC
** ▼ Hinzufügen (für rsuffix) **
rsuffix
df.join(dfC, rsuffix='_@')
rsuffix
df.join(dfC, lsuffix='_@')
Teilweise doppelte Spaltennamen
list1 = [100,200,300]
list2 = ['A','B','C']
list3 = ['AAA','BBB','CCC']
list4 = ['10A','20B','30C']
dfD = pd.DataFrame([list1,list2, list3, list4], columns=['col0', 111,'col1'])
dfD.index = ['row0', 'row1', 'XXX', 'YYY']
dfD
rsuffix
df.join(dfD, rsuffix='_@')
pd.concat([df, dfA], axis=1)
・ Bedeutung von "concat" verketten: Verketten. verbinden.
-Spalten "col0" und "col1" überlappen sich mit der Basistabelle. -Die Zeile "xxx" befindet sich nicht in der Basistabelle
Tabelle zum Beitreten
list1 = [1,100,'AAA']
list2 = [2,200,'BBB']
list3 = [3,300,'CCC']
dfE = pd.DataFrame([list1,list2, list3], columns=['col0', 'col1', 'aaa'])
dfE.index = ['row0', 'row1', 'XXX']
dfE
** "Achse = 1" ist erforderlich, wenn Spalten hinzugefügt werden **. Wenn es nicht angehängt ist, wird es in Zeilenrichtung hinzugefügt und das Ergebnis unterscheidet sich erheblich.
「axis=1 ”Ja
pd.concat([df, dfA], axis=1)
・ Spalte hinzufügen -Add wie es ist, auch wenn der Spaltenname dupliziert ist (anders als die Join-Methode) -Der Wert der Zeile, die nicht in der hinzuzufügenden Tabelle enthalten ist, ist NaN.
「axis=1 "keine
pd.concat([df, dfA])
-Wenn die Spaltennamen nicht übereinstimmen, wird eine neue Spalte hinzugefügt.
** * Spalten werden hinzugefügt, aber die Zeilen sind nicht integriert, sodass sich der Inhalt von dem unterscheidet, was Sie ausführen möchten. ** ** **
sort=True
pd.concat([df, dfA], axis=1)
Die Zeile "XXX" bietet eine automatische Sortierung.
sort=False
pd.concat([df, dfA], axis=1, sort=False)
Wenn Sie "sort = False" schreiben, wird die hinzugefügte Zeile am Ende hinzugefügt.
sort=False
pd.concat([dfA, df], axis=1, sort=False)
Am Ende wird eine Zeile hinzugefügt, die in der Basis "dfA" nicht vorhanden ist.
join='outer'
└ Standardeinstellung.
└ Hinterlassen Sie eine nicht vorhandene Zeile.
join='inner'
└ Lassen Sie nur doppelte Zeilen.
join='outer'
pd.concat([dfA, df], axis=1)
Eine Zeile "XXX", die vor und nach dem Zusammenführen nicht vorhanden ist, wird hinzugefügt.
join='outer'
pd.concat([dfA, df], axis=1, join='inner')
Gelöschte Zeilen "row2" und "XXX", die nur in einer der beiden Zeilen vorhanden sind.
・ Loc-Methode ・ Concat-Funktion
df.loc['A']=B
└ "df": Originaltabelle
└ "A": Name der hinzuzufügenden Zeile
└ "B": Was hinzuzufügen ist
Sie können relativ frei angeben, was Sie hinzufügen möchten. Es können numerische Werte, Werte, Tabellendaten, Formeln, Listen usw. verwendet werden.
① Zeile hinzufügen (Liste) ② Zeile hinzufügen (numerischer Wert) ③ Zeile hinzufügen (Tabelle) ④ Zeile hinzufügen (Formel)
Zeile hinzufügen (Liste)
df.loc['AAA'] = [4, 40, 400]
df
Zeile (Nummer) hinzufügen
df.loc['AAA'] = 4
df
Zeile (Tabelle) hinzufügen
df.loc['AAA'] = df.loc['row2']
df
Zeile hinzufügen (Formel)
df.loc['AAA'] = df.loc['row2'] * 100
df
pd.concat([df, dfA])
└ "df": Basistabelle
└ "dfA": Tabelle zum Hinzufügen
・ Bedeutung von "concat" verketten: Verketten. verbinden.
Tabelle zum Beitreten
list1 = [1,100,'AAA']
list2 = [2,200,'BBB']
dfA = pd.DataFrame([list1,list2], columns=['col0', 'col1', 'aaa'])
dfA.index = ['row0', 'XXX']
dfA
Standard
pd.concat([df, dfA])
sort=True
pd.concat([df, dfA])
Die später hinzugefügte Spalte "aaa" wird durch automatische Sortierung nach oben verschoben.
sort=False
pd.concat([df, dfA], sort=False)
Die später hinzugefügte Spalte "aaa" wird am Ende verbunden.
join='outer'
└ Standardeinstellung.
└ Lassen Sie eine Spalte, die nicht existiert.
join='inner'
└ Lassen Sie nur doppelte Spalten.
join='outer'(Standard)
pd.concat([df, dfA])
Die Spalte "aaa", die vor und nach dem Join nicht in der Tabelle vorhanden ist, bleibt erhalten.
join='inner'
pd.concat([df, dfA], join='inner')
Es bleiben nur die Spalten übrig, die in beiden Tabellen vor und nach dem Join vorhanden sind.
Recommended Posts