首页 > 解决方案 > Pandas 和 numpy 之间的语法逻辑

问题描述

我在 numpy 和 Pandas 之间有一个语法问题,可能还有更多 Python 模块。要在 numpy 中有效,可以这样做:

b = np.ones((5,5))
b[1:-1, 1:-1] = 0
print(b)

但是,当我想用​​ Pandas 在 Dataframe 上做某事时,我使用了一个变量,否则它不起作用,如下所示:

df2 = pd.concat(out, ignore_index=True, axis=1)
df2 = df2.fillna(method='ffill')

以 df.to_csv 为例。我不明白为什么 Python 的模块不使用类似的语法。我错过了什么吗?

标签: pythonpandasnumpysyntaxpython-module

解决方案


它确实有效,但这不是熊猫的默认设置。你必须这样做:

df2.fillna(method='ffill', inplace=True)

可能这不是默认值,因为它不会像这样嵌套操作:

df2 = pd.concat(out, ignore_index=True, axis=1).fillna(method='ffill').replace(...).apply(...)

Pandas 实际上使用 numpy 数组。你可以像这样访问它们

df.values

或这个

df["column"].values

推荐阅读