Warum funktioniert die innere Verbindung in Pandas so seltsam?Erklären, wie Pandas DataFrame bei der Arbeit funktioniert
Zum Beispiel:
import pandas as pd
import io
t1 = ('key,col1\n'
'1,a\n'
'2,b\n'
'3,c\n'
'4,d')
t2 = ('key,col2\n'
'1,e\n'
'2,f\n'
'3,g\n'
'4,h')
df1 = pd.read_csv(io.StringIO(t1), header=0)
df2 = pd.read_csv(io.StringIO(t2), header=0)
print(df1)
print()
print(df2)
print()
print(df2.join(df1, on='key', how='inner', lsuffix='_l'))
Ausgänge:
key col1
0 1 a
1 2 b
2 3 c
3 4 d
key col2
0 1 e
1 2 f
2 3 g
3 4 h
key_l col2 key col1
0 1 e 2 b
1 2 f 3 c
2 3 g 4 d
Wenn ich lsuffix
nicht angeben, heißt es
ValueError: columns overlap but no suffix specified: Index(['key'], dtype='object')
Ist diese Funktion Arbeit diff gerade von SQL's JOIN? Warum möchte es eine zusätzliche "Schlüssel" -Spalte mit einem Suffix erstellen? Warum gibt es nur 3 Reihen? ich es erwartet hatte Ausgabe etwas wie folgt aus:
key col1 col2
0 1 a e
1 2 b f
2 3 c g
3 4 d h
Dank. Was macht Join dann? – spiderface
@spiderface arbeitete an einer umfassenderen Antwort. Post wurde aktualisiert. – piRSquared