for i in range(1, 4): # Find up to 3 closest matches
merged = pd.merge_asof(
result1,
ftth_sorted,
on='key',
by='usluga',
direction='forward', # Find next closest higher value
suffixes=('', f'_{i}_ftth')
)
# Rename columns dynamically
merged.rename(columns={
f'product_offer_id_{i}_ftth': f'closest_product_offer_id_{i}',
f'po_name_{i}_ftth': f'closest_po_name_{i}',
f'deb_total_{i}_ftth': f'closest_deb_total_{i}'
}, inplace=True)
merged[f'closest_deb_total_{i}'].fillna(merged['key'], inplace=True)
merged['key'] = merged[f'closest_deb_total_{i}']
merged.sort_values(by='key', ascending=True, inplace=True)
result1 = merged.drop(columns=[col for col in merged.columns if col.endswith('_ftth')])
print(result1['key'].head())
result1
< /code>
Ich versuche, 3 engste Werte aus der Spalte 'Taste' der Tabelle 'ftth_sorted' zu finden, aus der Spalte 'result1'. Und streikende Werte in einer Zeile als [CEthest1, nächst2, nächst3 usw.]
Zuweisen. Das Problem ist jedoch, dass nach der 1. Iteration der gleiche Wert aus Conth1 für alle verbleibenden Spalten zeigt.>
Merge_asof im Inneren Walk ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post