Скажите, у меня есть n dataframes
, df1, df2 ... dfn.
Поиск строк, содержащих «плохие» значения в строке в данном кадре данных, выполняется, например,
index1 = df1[df1.isin([np.nan, np.inf, -np.inf])]
index2 = df2[df2.isin([np.nan, np.inf, -np.inf])]
Теперь, drop
добавление этих плохих строк в плохие dataframe
выполняется с помощью:
df1 = df1.replace([np.inf, -np.inf], np.nan).dropna()
df2 = df2.replace([np.inf, -np.inf], np.nan).dropna()
Проблема заключается в том, что любая функция, которая ожидает, что два (n) dataframes
columns
будут иметь одинаковую длину, может выдавать ошибку, если в одном файле данных имеются неверные данные, но нет другого.
Как убрать не только плохую строку из оскорбительного dataframe
, но и ту же строку из list of dataframes
?
Таким образом, в случае двух dataframe
, если в дате df1 index
2009-10-09 содержится «неверное» значение, эта же строка в df2 будет удалена.
[Возможно "некрасиво"? решение?]
Я подозреваю, что один из способов сделать это - merge
два (n) dataframes
на дату, а затем применить функцию очистки, чтобы отбрасывать "плохие" значения автоматически, так как вся строка удаляется? Но что произойдет, если у одного dataframe
отсутствует дата, а у другого нет? [и они все еще имеют одинаковую длину?]