Я пытаюсь ускорить свою программу, я довольно новичок в python и pandas, и я просто использовал этот код, чтобы увидеть, работает ли он, но есть ли способ ускорить его.Я знаю, что itterrows очень медленные и, возможно, функция .apply работает быстрее, но я понятия не имею, как ее использовать, когда я хочу использовать в ней текущую позицию строки.Может быть, один из вас может помочь мне.
Вот мой код:
for i, row in df.iterrows():
if df.iloc[i, 2] == 1000:
list = []
datum = df.iloc[i, 0]
id = df.iloc[i, 1]
for j, row in df.iterrows():
if df.iloc[j, 0] == datum:
if df.iloc[j, 0] != id:
waarde = df.iloc[j, 2]
if waarde != 1000:
waarde2 = df.iloc[j-1, 2]
respectivelijk = waarde / waarde2
# print(waarde)
# print(waarde2)
# print(respectivelijk)
list.append(respectivelijk)
# print(list)
gem = sum(list) / len(list)
# print(gem)
# print(df.iloc[i-1, 2])
correcte_waarde = (gem * df.iloc[i-1, 2])
# print(correcte_waarde)
df.set_value(i, 'water_level', correcte_waarde)
Мой фрейм данных выглядит так: https://gyazo.com/0fdce9cbac81562195e4f24d55eac9a9 Я использую этот код для замены ошибок(значение 1000) со значением, основанным на изменениях в стоимости других объектов.Например, если все другие объекты повышаются на 50% за час отсутствия, я могу предположить / оценить, что недостающее значение также возрастет на 50%.