我正在努力确定为什么我在python中收到此错误。在我的代码中,我在熊猫中合并了两个数据框:
result = pd.merge(credit_record, application_record, on="ID")
,然后删除在特定列中缺少值的行:
new_data = result.dropna(subset = ["MONTHS_BALANCE"], inplace=True)
然后我尝试查看更新的数据框并收到错误:
new_data.head()
AttributeError:'NoneType'对象没有属性'head'
有人知道为什么会这样吗?
答案 0 :(得分:2)
当您使用 inplace 参数时,该功能可在此处用于原始数据框结果,请尝试
result = pd.merge(credit_record, application_record, on="ID")
new_data = result.dropna(subset = ["MONTHS_BALANCE"])
new_data.head()
答案 1 :(得分:1)
Inplace=True
表示将在结果数据帧see documentation上执行放置操作。因此,您无法将数据帧复制到new_data。因此,这将导致一个庞大的数据框。
删除inplace=True
,它将正常工作。
result = pd.merge(credit_record, application_record, on="ID")
new_data = result.dropna(subset = ["MONTHS_BALANCE"])
new_data.head()
答案 2 :(得分:1)
new_data = result.dropna(subset = ["MONTHS_BALANCE"], inplace=True)
当您使用(inplace = True)时,它将返回一个空类型的对象。 删除(inplace = True)并尝试。
new_data = result.dropna(subset = ["MONTHS_BALANCE"]
答案 3 :(得分:1)
仅供参考,您也可以保持代码原样,但不要将数据帧存储在新变量中。其他评论者对 inplace=True
的看法几乎相同,因此您无需排除此参数,只需像这样编写代码:
result = pd.merge(credit_record, application_record, on="ID")
result.dropna(subset = ["MONTHS_BALANCE"], inplace=True)
result.head()