【发布时间】:2014-11-13 07:16:12
【问题描述】:
我想知道这是否是一个错误,或者我可能不明白 nanmean 应该如何处理数据框。如果我将数据帧转换为数组似乎可以工作,但不是直接在数据帧上,也不会引发任何异常。最初注意到这里:Fill data gaps with average of data from adjacent days
df1 = DataFrame({ 'x': [1,3,np.nan] })
df2 = DataFrame({ 'x': [2,np.nan,5] })
x
0 1
1 3
2 NaN
x
0 2
1 NaN
2 5
In [1503]: np.nanmean( [df1,df2], axis=0 )
Out[1503]:
x
0 1.5
1 NaN
2 NaN
In [1504]: np.nanmean( [df1.values, df2.values ], axis=0 )
Out[1504]:
array([[ 1.5],
[ 3. ],
[ 5. ]])
【问题讨论】:
-
这对我来说似乎是一个错误,但不清楚这是 Pandas 还是 numpy 的错,因为历史上存在一些未转换为 numpy 数组的问题,我在 scikit learn 中遇到过这个很多:stackoverflow.com/questions/21390084/… 和 stackoverflow.com/questions/23095725/…
-
还有这个:stackoverflow.com/questions/22669208/…。这可能是 numpy 没有调用
__array__的问题,所以我不知道这是否真的是 pandas 的错误 -
我想教训是不要通常假设 numpy 会按照您认为的方式翻译数据帧或序列。如有任何疑问,只需使用 .values...