【问题标题】:Why can't I create an object stemming from a drop method in Pandas?为什么我不能在 Pandas 中创建源自 drop 方法的对象?
【发布时间】:2019-04-23 14:34:35
【问题描述】:

我上传的 CSV 文件中的列是 A、B、C、D、E、F。 我想删除“B”、“C”列,但是我想创建 2 个单独的数据框对象。在我使用 drop 方法后,原始形式的 1 个数据框对象和第 2 个数据框对象。我收到以下错误:

例子:

import pandas as pd
data1 = pd.read_csv('data1.csv')
data2 = data1.drop(['B', 'C'], axis=1)
data2.head()

我得到的错误是:

AttributeError Traceback(最近一次调用最后一次) 在 ----> 1 个数据2.head()

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

【问题讨论】:

  • 请检查how to provide a great pandas example 以及如何提供minimal, complete, and verifiable example 并使用示例输入数据框相应地修改您的问题
  • 你有没有调用data2.head()之类的方法?我在您的代码中没有看到任何“NoneType”对象。
  • 你有没有参考链接。我们怎么知道data1.csv 的样子?您必须尊重自愿帮助用户的论坛。用户有责任使问题可重现,这样人们就不必花费时间来创建示例。

标签: python pandas methods


【解决方案1】:

放置方法的 Inplace 参数设置为 True。这不允许创建对象。它需要设置为 False。

【讨论】:

    【解决方案2】:

    让我们创建一个 panda (pd) DataFrame 并将其分配给 object1。

    import numpy as np
    import pandas as pd
    

    创建一个列表

    lists = np.arange(16).reshape(4,4)
    

    创建列名

    columns = ['A','B','C','D']
    

    创建数据框并分配给object1

    object1 = pd.DataFrame(lists, columns=columns)
    

    现在使用 dataframe.drop 命令删除列 B 和 C 并分配给 object2

    object2 = object1.drop(['B','C'], axis=1)
    

    这行得通!希望能帮助到你 :)。有关使用 pd 创建 DataFrame 的更多方法,请使用此链接 https://www.ritchieng.com/creating-dataframe-from-objects/ 并删除列 https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.drop.html

    【讨论】:

    • 嗨,迪维亚!您可能希望更清楚地格式化您的答案以避免被否决。看看Markdown Editing Help
    • 感谢您告诉我!我希望上面的编辑更具可读性
    猜你喜欢
    • 2014-07-16
    • 2012-04-21
    • 1970-01-01
    • 2019-04-07
    • 1970-01-01
    • 1970-01-01
    • 2013-10-05
    • 1970-01-01
    • 2015-06-21
    相关资源
    最近更新 更多