我无法理解它的功能。使用 inplace=True 时,函数不输出任何内容,原始 df 保持不变。这是如何运作的?
很抱歉,我在第一篇文章中写了“过滤器”。那是非常愚蠢的错误。
正如@Alex 所要求的,示例如下:
df = pd.DataFrame(np.random.randn(4,3), columns=map(chr, range(65,68)))
df['B'] = np.nan
print df
print df.interpolate(axis=1)
print df
print df.interpolate(axis=1, inplace=True)
print df
输出如下:
A B C
0 -0.956273 NaN 0.919723
1 1.127298 NaN -0.585326
2 -0.045163 NaN -0.946355
3 -1.375863 NaN -1.279663
A B C
0 -0.956273 -0.018275 0.919723
1 1.127298 0.270986 -0.585326
2 -0.045163 -0.495759 -0.946355
3 -1.375863 -1.327763 -1.279663
A B C
0 -0.956273 NaN 0.919723
1 1.127298 NaN -0.585326
2 -0.045163 NaN -0.946355
3 -1.375863 NaN -1.279663
None
A B C
0 -0.956273 NaN 0.919723
1 1.127298 NaN -0.585326
2 -0.045163 NaN -0.946355
3 -1.375863 NaN -1.279663
如您所见,第一个插值创建了原始数据帧的副本。我想要的是插入和更新原始数据帧,所以我尝试inplace
了,因为文档说明如下:
inplace : bool, default False 如果可能,更新 NDFrame。
第二次插值没有返回任何值,也没有更新原始数据帧。所以我很困惑。
正如@joris 要求的那样,我的熊猫版本是'0.15.1'
. 虽然这个要求是由于我的错误......