Pandas - 属性错误:'NoneType'对象没有属性'pipe'

4

我加载了一个csv文件,尝试使用管道函数处理数据,但出现以下错误:AttributeError: 'NoneType' object has no attribute 'pipe'

df = pd.read_csv('file.csv')

def func1(df):
    df['newcol'] = ...some code

def func2(df):
    df['newcol2'] = ...some code

(
df.pipe(func1)
 .pipe(func2)
)

当我打印 df 时,它可以正常打印数据框。不知道为什么会出现错误。Pandas 版本为 v0.24.2,Python 版本为 v3.7。

3
我认为 df.pipe(func1) 在原地进行计算,不返回 "self" 而是返回 "None"。你需要在两行代码上分别运行它。尽管如此,文档表明不是这样,所以我不确定。 - tmwilson26
3
我认为我明白了,你需要从func1和func2中返回你的数据框。文档中说管道返回“object: func的返回类型”,但目前返回值为None。 - tmwilson26
1
@tmwilson26 很有趣。那个有效了。我按照 Pandas 文档中展示的链式管道操作 df.pipe(func1).pipe(func2)... 进行了操作。 - Pab
1个回答

3

在将df作为func2的输入之前,您需要从func1返回它。
我曾经遇到过同样的问题,因为我没有从中间函数返回df。希望这可以帮助!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接