为什么熊猫数据框变成NoneType对象?

时间:2020-08-18 14:16:47

标签: python pandas

我正在努力确定为什么我在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'

有人知道为什么会这样吗?

4 个答案:

答案 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()