Я прочитал много сообщений, но до сих пор не могу понять следующее. Как я могу извлечь non-nans из pandas DataFrame? Например:
import pandas as pd
import numpy as np
tmp = pd.DataFrame({'Women': {0: 28, 1: 42, 2: 52, 3: 62},
'Men': {0: 46.0, 1: 55.0, 2: np.nan, 3: np.nan},
'Girls': {0: 40.0, 1: np.nan, 2: np.nan, 3: np.nan},
'Boys': {0: 47.0, 1: 49.0, 2: 35.1, 3: np.nan}}
)
Результатом будет list
или dict
, выглядящее так:
[[28, 42, 52, 62], [46.0, 55.0], [40.0], [47.0, 49.0, 35.1]]
Я могу сделать это, перебирая столбцы и отбрасывая nans:
x=[]
for col in tmp.columns:
x.append(list(tmp[col].dropna()))
Но мне было любопытно, есть ли какой-нибудь более приятный способ без for l oop или использования некоторых функций pandas, чтобы сделать его быстрым и приятным. В идеале однострочный, так как это должно быть в более крупной функции, настолько простой, читаемой и короткой, насколько это возможно :). Спасибо