为什么 pandas 数据框变成了 NoneType 对象?

我正在努力确定为什么我在 python 中收到此错误。在我的代码中,我合并了 pandas 中的两个数据框:

result = pd.merge(credit_record, application_record, on="ID")

然后删除在特定列中具有缺失值的行:

new_data = result.dropna(subset = ["MONTHS_BALANCE"], inplace=True)

然后我尝试查看更新后的数据框并收到错误消息:

new_data.head()

AttributeError: 'NoneType' 对象没有属性 'head'

有谁知道为什么会这样?


泛舟湖上清波郎朗
浏览 197回答 4
4回答

冉冉说

当您使用inplace参数时,该函数适用于此处的原始数据帧结果,试试这个result = pd.merge(credit_record, application_record, on="ID")new_data = result.dropna(subset = ["MONTHS_BALANCE"])new_data.head()

回首忆惘然

Inplace=True表示将在结果数据帧上操作。所以你没有将数据帧复制到 new_data。所以这会导致一个空的数据框。删除inplace=True它会正常工作。result = pd.merge(credit_record, application_record, on="ID")new_data = result.dropna(subset = ["MONTHS_BALANCE"])new_data.head()

qq_花开花谢_0

new_data = result.dropna(subset = ["MONTHS_BALANCE"], inplace=True)当您使用(inplace=True)时,它返回一个空类型对象。 删除 (inplace=True)并尝试。new_data = result.dropna(subset = ["MONTHS_BALANCE"]

万千封印

仅供参考,您也可以只保留代码原样,但不要将数据框存储在新变量中。因此,其他评论者所说的几乎相同,inplace=True而不是排除此参数,您只需像这样编写代码:result = pd.merge(credit_record, application_record, on="ID")result.dropna(subset = ["MONTHS_BALANCE"], inplace=True)result.head()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python