Python 具有 NaN 值的数据帧行向最小值和最大值

Python Dataframe rowwise min and max with NaN values

我的数据框有 nans。但我试图找到行明智的最小值和最大值。我怎么找到它。

df = pd.DataFrame({"A":[12,NaN,13],"B":[45,12,65],"C":[63,78,NaN]})

df= 
    A    B     C
0   12   45    63
1   NaN  12   78
2   13   65    NaN

我试图在每一行中找到最小值和最大值,并在 A BC 列中找到它们之间的差异。 我的代码:

poacols = ['A','B','C']
df['dif'] = np.nanmax(df[poacols])-np.nanmin(df[poacols])

当前输出:

df['dif'] = 
0    66
1    66
2    66

预期输出:

df['dif'] = 
0    51
1    66
2    52

我们应该添加轴=1,检查每行的最小值和最大值

np.nanmax(df[poacols],1)-np.nanmin(df[poacols],1)
Out[81]: array([51., 66., 52.])