Um Änderungen an mehreren DataFrames zu handhaben, habe ich einen Code, der funktioniert, aber ich möchte seine Effizienz verbessern.Umgang mit doppelten for-Schleifen mit Python Pandas
Ich bin sicher, dass es eine bessere Lösung für dieses Problem gibt.
In [1]: import pandas as pd
In [1]: df = pd.DataFrame([[1, 2], [1, 3], [4, 6]], columns=['A', 'B'])
In [2]: df
Out[2]:
A B
0 1 2
1 1 3
2 4 6
In [1]: df2 = pd.DataFrame([[1, 1], [1, 1], [1, 1]], columns=['C', 'D'])
In [2]: df2
Out[2]:
C D
0 1 1
1 1 1
2 1 1
In der Tat Werte zu identifizieren und in Abhängigkeit von einer Gleichheit beispielsweise zu ersetzen, verwende ich doppelt für llop Dataframes durchsuchen:
for i in range(0, df['A'].size):
for j in range(0, df2['C'].size):
if df.loc[i,'A'] == df2.loc[j, 'C'] :
df2.loc[j, 'C'] = df.loc[i,'B']
else :
pass
In [2]: df2
Out[2]:
C D
0 2 1
1 3 1
2 1 1
Aktion ist wirklich einfach, aber ist nicht geeignet für die Verarbeitung großer Datenrahmen, vielen Dank im Voraus
EDIT: die Dataframes sind nicht notwendigerweise die gleiche Größe
wie würden Sie die Daten zu handhaben wie die minimale Größe überschreitet? –