У меня есть DataFrame с информацией, хранящейся в столбце до неизвестного номера строки. После этого номера строки в столбце хранятся только значения NaN. Однако по всему столбцу также появляются случайные значения NaN. Я хочу, чтобы кумуляция проверила, сколько значений NaN повторяется для определения последней строки, в которой хранится информация.
Мой код выглядит следующим образом:
сначала я создаю Проверка NaN, которая накапливает количество значений NaN в строке после строки
далее, я проверяю, превышает ли средство проверки NaN определенный порог (в данном случае 3)
последний, если порог превышен, последующие строки удаляются
Check_NaN =
Fruits['bananas'].isnull().astype(int).groupby(Fruits['bananas']
.notnull().astype(int).cumsum()).sum()
for row in Fruits:
for cell in row['bananas']:
if cell(Check_NaN) < 3:
sum_Fruits.update(Fruits)
else:
row.dropna(subset=['bananas'])
Ниже приведен образец данных для Fruits['bananas']
. Это строки 110-130, из которых конец информации Excel в DataFrame указывается началом значений NaN.
110 banana red
111 banana green
112 banana white
113 banana yellow
114 banana black
115 banana orange
116 banana purple
117 banana pink
118 banana blue
119 banana silver
120 banana grey
121 banana gold
122 banana white
123 banana orange
124 --
125 NaN
126 NaN
127 NaN
128 NaN
129 NaN
Однако я сталкиваюсь с проблемой, которая находится в for cell in row['bananas']:
, что дает TypeError: string indices must be integers
.
Меня это сбивает с толку, поскольку я не могу перебирать строки, которые я хочу удалить. Мне нужен многоразовый код, так как начало значений NaN отличается для каждого листа Excel. Как я могу написать свой сценарий так, чтобы порог в 3 значения NaN понимался и удалял остальные строки?