#python #pandas #conditional-statements #iteration #rows
#питон #панды #условные утверждения #итерация #строки
Вопрос:
Я создал фрейм данных с 15 столбцами х 32768 строк. В этом я вычислил сумму 13-го столбца(Di) и получил сумму = 2,1 e-06. Фрейм данных. Вот пример моего фрейма данных
Например: для 32 768 строк = 2,1 e-06 если, скажем, после 1 миллиона итераций 13-й столбец достигнет 1, я хочу распечатать строку.
Я попробовал этот код, но он повторяется только до 32 768 строк (т. е. 32 768 32 768). и распечатка строк. Но я хочу знать при сумме = 1
if D_sum[0] lt; 1: #Sum of 13th column # D_sum = 2.1e-06 count = 0 #repeat the experiment (all columns) from 1 to 32767 until D_sum = 1 for row in df.iterrows(): count = 1 D_sum[0] = (df[['Di']].sum()).values print(D_sum) #print(row) if D_sum[0] gt; 1 : #(Condition) print('count', count) print(D_sum) print(row) break
Фактический объем производства:
8.13e-06 1.2e-06.. so on up to . . 0.04 (only 19,041 iterations) #this is iterating only at 32,768 at max and printing D_sum but
Мне нужно, чтобы итерации продолжались до тех пор, пока D_sum = 1 или близко к 1.
#('prints all rows') Expected Output: 8.13e-06 1.2e-06.. so on up to . . 1 (#1 million iterations approx) ('print row)
Комментарии:
1. Каков ваш блок «если»в первой строке? Также я заметил, что у вас нет дела для
D_sum == 1
(толькоlt; 1
иgt; 1
). Поскольку вы работаете с очень маленькими числами, могут возникнуть некоторые проблемы с округлением (например1 - 1e-17
, округляется до 1).2. Спасибо вам за ваш комментарий. «Если» в первой строке-это условие, которое я дал, чтобы проверить, является ли D_sum (суммирование всех значений в 13-м столбце Di) lt; 1, затем начинается итерация строк и продолжается до тех пор, пока D_sum gt; 1, затем выведите D_sum, количество строк и итераций. Да, поскольку мои цифры очень малы, даже если они где-то близки к 1, для меня это тоже нормально.
3. Это
if
ничего не делает, потому что за толстой кишкой что-то не так, и после нее нет отступа.4. хм, может быть, я должен это проверить. Не могли бы вы, пожалуйста, улучшить мой код, чтобы получить желаемый результат.