У меня есть одно требование:
У меня есть фрейм данных "df_input" с 20M строками, который включает в себя детали поездки. столбцы: "№ транспортного средства", "геолокация", "начало", "конец" . Для каждого номера транспортного средства имеется несколько рядов, каждый из которых имеет разную геолокацию для разных поездок.
Теперь я хочу создать новый фрейм данных df_final , который будет иметь только первую запись для всего транспортного средства - нет. Как это можно сделать эффективным способом?
Я использовал что-то вроде ниже, на выполнение которого уходит более 5 часов:
import dfply as dp
from dfply import X
output_df_columns = ["vehicle-no","start", "end", "geolocations"]
df_final = pd.DataFrame(columns = output_df_columns) #create empty dataframe
unique_vehicle_no = list(df_input["vehicle-no"].unique())
df_input.sort_values(["start"],inplace=True)
for each_vehicle in unique_vehicle_no:
df_temp = (df_input >> dp.mask(X.vehicle-no == each_vehicle))
df_final = df_final.append(df_temp.head(1),ignore_index=True, sort=False)