In Pandas können die Zeilenindizes nach dem Filtern/Sortieren eines DataFrames nicht sequentiell werden (z. B. [0, 10, 4]). Wenn ich .loc[10] verwende, kann ich die Zeile, die dem ursprünglichen Index 10 entspricht, aus dem DataFrame abrufen, der jetzt die zweite Zeile im gefilterten/sortierten DataFrame ist:
Code: Select all
import polars as pl
df = pl.DataFrame({"A": [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]})
df_pd = df.to_pandas()
filtered_df = df_pd.loc[[0, 10, 4]]
# Retrieves the row where the original index is 4
print(filtered_df.loc[4])
Dies würde Folgendes ausgeben:
Ich versuche, dieses Verhalten in Polars zu reproduzieren. Um die ursprünglichen Zeilenindizes nach dem Filtern beizubehalten, habe ich mit .with_row_index() eine Indexspalte erstellt. Allerdings bin ich mir nicht sicher, wie ich von hier aus fortfahren soll. Ich benötige eine effiziente Lösung, die es mir ermöglicht, eine ähnliche .loc-Funktionalität zu verwenden, um nach dem Filtern oder Sortieren mehrere Zeilen anhand ihrer ursprünglichen Indizes in Polars auszuwählen.