【问题标题】:Indexing by row name按行名索引
【发布时间】:2022-09-23 01:59:44
【问题描述】:

有人可以帮我解决这个问题。我想按名称调用行,所以我在数据框中的第一列使用 set_index 来按名称索引行,而不是使用整数进行索引。

# Set \'Name\' column as index on a Dataframe
df1 = df1.set_index(\"Name\", inplace = True)
df1

输出:

AttributeError: \'NoneType\' object has no attribute \'set_index\'

然后我运行以下代码:

result = df1.loc[\"ABC4\"]
result

输出:

AttributeError: \'NoneType\' object has no attribute \'loc\'

在修复错误之前,我通常不会运行依赖于第一个代码的第二个代码,但最初我在一个 Jupyter 笔记本单元格中将它们一起运行。现在我看到这两个代码单元有问题。

请让我知道我哪里出错了。谢谢!

    标签: python indexing jupyter-notebook in-place


    【解决方案1】:

    也许你应该定义你的数据框?

    import pandas as pd
    df1 = pd.DataFrame("here's your dataframe")
    df1.set_index("Name")
    

    要不就

    import pandas as pd
    df1 = pd.DataFrame("here's your dataframe").set_index("Name")
    df1
    

    【讨论】:

    • 删除“inplace = True”解决了我的问题。谢谢你的帮助。
    【解决方案2】:

    您的变量“df1”在使用它之前没有在任何地方定义。 尝试这个:

    # Set 'Name' column as index on a Dataframe
    df1 = ''
    df1 = df1.set_index("Name", inplace = True)
    

    如果它之前定义,它的值为NONE。所以首先检查这个变量。 其余代码“应该”在之后工作。

    【讨论】:

    • 可悲的是,添加“inplace=True”根本不起作用。所以当我删除“就地”部分时,我得到了我想要的结果。但是感谢您这么快回答。
    猜你喜欢
    • 2015-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-04
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多