Перебор элементов внутри датасета
У меня есть датасет, колонки с которыми я работаю это chactnoe и DATE, в общем составила такое условие, но оно останавливается после первого принта, подскажите пожалуйста как исправить это. Заранее благодарю
print(len(chactnoe)) # 3163
def data(input):
res = []
res_small = []
for i in range(1, len(input)):
if i > 0.8:
res.append(i)
if len(res) > 10:
print("check min_value")
for j in range(len(res), len(res) + 9):
res_small.append(j)
if sum(res_small)/len(res_small) < 0.5:
print("see you soon")
result = data(chactnoe)
Ответы (1 шт):
Смею только предположить что вам именно надо в этом коде, но вы не используйте входные данные вообще никак.
Допустим у нас имеется массив
array = ["a", "b", "c"]
Что бы пройтись по каждому элементу мы можем использовать for:
for element in array:
print(element, end=", ")
Что выведет нам a, b, c,
range же в свою очередь (если сильно упростить) генерирует массив [start, start + 1, ..., end - 1].
Таким образом
range(5) == [0, 1, 2, 3, 4]
range(2, 4) == [2, 3]
# и т. д.
А это значит, что
array = ["a", "b", "c"]
len(array) == 3 # длинна массива
range(len(array)) == range(3) == [0, 1, 2]
Таким образом:
for i in range(len(array)): ...
эквивалентно
for i in [0, 1, 2]: ...
Т. е. i будет принимать значения от 0 до len(array) (длинная массива)
А ещё input является ключевым словом и его бы заменить по хорошему... Например на data. А название метода тогда на process_data
А ещё вы ничего не возвращаете из своего метода.
Похоже вы хотели сделать что то типо такого:
def process_data(data):
res = []
res_small = []
for i in data:
if i > 0.8:
res.append(i)
if len(res) > 10:
print("check min_value")
# Проходимся по последним 10 элементам res:
for j in res[-10:]:
res_small.append(j)
if sum(res_small)/len(res_small) < 0.5:
print("see you soon")
return res_small
А вообще хотелось бы услышать полную задачу, что бы я вам помог написать более красивый и понятный код