首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >“NoneType”“对象没有属性”“fillna”“错误

“NoneType”“对象没有属性”“fillna”“错误
EN

Stack Overflow用户
提问于 2019-04-30 04:27:28
回答 1查看 7.6K关注 0票数 2

我在下面的代码中得到一个错误。不能理解为什么。在代码的最后一行出现错误。请告诉我需要做些什么来纠正它。除此之外,df.isna().any()也不起作用。

代码语言:javascript
复制
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

%matplotlib inline

data = pd.read_csv('BlackFriday.csv')
df = pd.DataFrame(data)

df.info()
df.describe()
df.head()

#To check the unique values of Product Categories 2, 3 and then assign a default value accordingly for NaN's

Product_Category_2 = df['Product_Category_2'].unique()
Product_Category_3 = df['Product_Category_3'].unique()
print('Product_Category_2', Product_Category_2)
print('Product_Category_3', Product_Category_3)

df = df.fillna(0, inplace=True)




---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-16-7f28e582ea84> in <module>()
      1 #We can replace the NaN's with 0.
----> 2 df = df.fillna(0, inplace=True)
      3 

AttributeError: 'NoneType' object has no attribute 'fillna'
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-30 04:44:36

我看到的第一个问题是,pd.read_csv已经创建了一个数据帧,因此您不需要再次将其分配给数据帧。

然后,您的主要问题是:不能在同一赋值操作中同时使用inplace=Truedf=df.fillna()inplace=True使fillna方法返回None,然后将其分配给df。这是可行的,并将您的变量赋给None,但应该不会导致您看到的错误,除非您尝试在运行数据帧之后重新运行该行代码或引用它。

代码语言:javascript
复制
df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,0],'c':[None,None,1,2,None]})

    a   b   c
0   1   6   NaN
1   2   7   NaN
2   3   8   1.0
3   4   9   2.0
4   5   0   NaN

正确:

任一

代码语言:javascript
复制
df.fillna(0,inplace=True)

代码语言:javascript
复制
df=df.fillna(0)
df
    a   b   c
0   1   6   0.0
1   2   7   0.0
2   3   8   1.0
3   4   9   2.0
4   5   0   0.0

不正确:

代码语言:javascript
复制
df=df.fillna(0, inplace=True)

print(df)
None
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55910397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档