У меня есть фрейм данных, который выглядит следующим образом:
df_dict = {'A': [5, 3, None, None, 4, 2],
'B': [2, None, 4, 5, None, None],
'C': [4, 3, 8, 5, 6, 7],
'D': [5, 4, 2, None, 7, 8],
'E': [2, 3, 4, None, None, None],
'F': [1, 2, None, None, None, None]}
df = pd.DataFrame(df_dict)
Здесь C
представляет полные данные. E
и F
представляют данные, подвергнутые цензуре, но перед тем, как данные будут подвергнуты цензуре, они отсутствуют. A
, B
и D
представляют цензурированные и / или отсутствующие данные. Точка цензуры может быть разной. Как я могу задать подкадр данных, состоящий из столбцов с полными (C
) или цензурированными, но полными (E
, F
) данными?
Обновление: мне удалось выяснить это. Не самый элегантный, но работающий
df_noncensor = pd.DataFrame()
for col in df.columns:
last_valid = df[col].last_valid_index()
df[col].fillna(-999, inplace = True)
if -999 not in df[col][0:last_valid].to_list():
series_tmp = df[col]
df_noncensor[col] = series_tmp
df_noncensor = df_noncensor.replace(-999, np.NaN)