Пропуск NaN при итерации по кадру данных - PullRequest
0 голосов
/ 17 июня 2020

Я работаю с таблицей из 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 (очевидно), и хотя я знаю это Весь сценарий на самом деле не является типичным вариантом использования, я надеюсь, что смогу найти что-то, что работает как временная остановка, пока мы не получим лучшую настройку транзакционной базы данных.

...