У меня проблема с pandas lib ... Я использую pandas .to_numeri c, чтобы сравнить столбец со значением, но, когда исходное значение не является "аналогом числа", pd .to_numeri c преобразовать ячейку csv в значение "nan", но я не знаю, как сравнить это значение "nan" с "if" ... В основном, если значение ячейки равно nan, я Мне нужно поймать ячейку в правильном положении, например:
while counter < len(df): #df is my pandas Dataframe
if df.values[counter][2].isnull(): #[2] is my column with "possible nan values, but not works!"
if 0 <= df.values[counter][4] <= 100: #[4] is my column with "number values"
df.values[counter][2] = df.values[counter][4]
df.values[counter][1] = df.values[counter][3] #[3] Like column [4]
counter += 1
По сути, настоящая причина, по которой я должен это сделать, заключается в том, что мой CSV-файл иногда получает «Сдвиг вправо» в некоторых строках!
Заранее спасибо !!
@ Edit 1:
Мой набор данных:
Время | ... | текущий | bt_disable | bt_cpy | bt_health | ...
2561456 | ... | 48945 | Нормальный | 20 | Хорошо | ...
2589749 | ... | 41485 | Нормальный | 21 | Хорошо | ...
2561456 | ... | 48945 | Нормальный | 22 | Хорошо | ...
2561986 | ... | 1 | 48515 | нан | 23 | ...
2569921 | ... | 1 | 49821 | нан | 24 | ...
2561456 | ... | 43253 | 0 | 25 | Хорошо | ...
Две строки в Жирный сместились вправо ... "сдвиг" - это автомат c, у меня нет контроля .. .
to_numeri c строк:
df[BCY] = pd.to_numeric(df[BCY], errors='coerce') #BCY and others is the name of column
df[BCN] = pd.to_numeric(df[BCN], errors='coerce')
df[BPD] = pd.to_numeric(df[BPD], errors='coerce')
df[BHT] = pd.to_numeric(df[BHT], errors='coerce')
Вы можете видеть, что мой исходный файл CSV содержит столбцы в | ... | что я не использую, но, когда я использую to_numeri c в столбце BT_CPY, и строка смещается, значение normal преобразуется в "nan", и мне нужно проверить это nan и если nan == true, мне нужно поймать значение bt_health и поместить в столбец bt_cpy!