Hallo Leute,
Ich benutze Dataframe, um zwei Tabellen (A und B) zu erstellen und beide haben die gleichen Spalten. (1. Spalte ist ‚ID‘ und eine Tabelle könnte mehr als eine Zeile mit der gleichen ID haben)Pandas (Dataframe) Daten auswählen
Ich möchte eine neue Tabelle (C) auf eine Basis schaffen und einige Zeilen von B. Wenn die ID in der Tabelle B tritt auch in A dann diese Zeile in C hinzufügen
Mein Code:
from pandas import DataFrame
A_ID = [1,2,3,1,2]
A_place = [1,2,3,2,1]
B_ID = [4,2,6]
B_place = [2,2,3]
A_data = {'ID':A_ID,'place':A_place}
A_table = DataFrame(A_data)
B_data = {'ID':B_ID,'place':B_place}
B_table = DataFrame(B_data)
C_table = A_table
for n in range(len(B_table)):
if B_table['ID'][n] in list(A_table['ID']):
C_table = C_table.append(B_table[n:n+1])
Frage:
Meine Frage ist, dass ist es eine andere Möglichkeit, es zu tun, ohne for-Schleife? Ich werde viel Zeit mit Millionen von Daten und For-Schleifen verschwenden.
Übrigens, gibt es andere Tools besser als Pandas mit Big Data umzugehen?
Danke deine Hilfe !!
Sie können nur filtern, wie 'C_table = B_table [B_table ['ID']. Isin (A_table ['ID'])]' – EdChum
Es funktioniert !! Ich ändere etwas, um meine Anforderung zu erfüllen, und es sieht so aus: 'C_table = A_table.append (B_table [B_table ['ID']. Isin (A_table ['ID'])])' Ist es schneller als für Schleife? –
Oh ja. es sollte schneller sein als Looping. –