Я работаю с таблицей из 100+ столбцов, организованной следующим образом:
Purchaser State Qty_Prod_1 Qty_Prod_2 Qty_Prod_3 Qty_Prod_4 etc...(up to Product 160)
Joe VA 1000 NaN NaN NaN
Bob TX Nan 5 1 NaN
Sue CA NaN NaN NaN 500
...
Я пытаюсь выполнить итерацию по таблице, чтобы создать сводное представление заказов, которое пропускает множество значений NaN . (Я знаю, что использование чего-либо «iter» далеко не идеально; но в таблице около 9 тыс. Строк, поэтому я надеюсь, что здесь это понятно). Желаемый результат:
Purchaser Joe
State VA
Qty_Prod_1 1000
Purchaser Bob
State TX
Qty_Prod_2 5
Qty_Prod_3 1
Purchaser Sue
State CA
Qty_Prod_4 500
Если я запустил следующее для l oop, я получу базовый c итеративный формат, но включая сотни NaN для всех непроданных типов продуктов:
for i, j in filtered_req_df.iterrows():
print(i, j)
Я застрял, пытаясь включить условие, исключающее NaN. Я пробовал использовать notnull
в сочетании с ilo c, но получаю сообщение об ошибке, указывающее на то, что я не могу тестировать логические значения таким образом:
for i, j in df.iterrows():
if pd.notnull(df.iloc[i, j]):
print(i, j)
Я также пробовал создать фиктивная переменная из значения в [i, j]
, но мне тоже не повезло с этим подходом.
for i, j in df.iterrows():
val = df.iloc[i, j]
if pd.notnull(val):
print(i, j)
Я новичок в Python (очевидно), и хотя я знаю это Весь сценарий на самом деле не является типичным вариантом использования, я надеюсь, что смогу найти что-то, что работает как временная остановка, пока мы не получим лучшую настройку транзакционной базы данных.