pandas 其中一个 Dataframe 字符串索引无法编制索引,而其他可以[复制]

83qze16e  于 2023-03-06  发布在  其他
关注(0)|答案(1)|浏览(91)
    • 此问题在此处已有答案**:

Pandas- How can I eliminate trailing whitespace in the index(1个答案)
5天前关闭。
这篇文章是编辑和提交审查5天前。
我有一个带字符串索引的 Dataframe

1
Abai                  Abai.1
Native to             Indonesia
Region                Borneo
Language family       Austronesian
ISO 639-3             None (mis)
Glottolog             abai1241

奇怪的是,当我尝试使用loc访问"Native to"索引时

df.loc["Native to"]

它返回KeyError。但是当我尝试使用相同的方法访问"Language family"索引时,它工作并返回Series对象。

In [5]: df.loc["Language family"]
Out[5]:
1    Austronesian
Name: Language family, dtype: object

其他有空格的索引也是如此,而其他没有空格的索引则工作正常。
经过一点调查,我怀疑"Native to"字符串中的空格字符,下面的代码块将对此进行解释。

# I found that
df.loc[df.index.str.contains("Native")]

# returns this dataframe
#                     1
# Native to           Indonesia

# while the code below (notice the additional space)
df.loc[df.index.str.contains("Native ")]

# returns an empty Dataframe

# meanwhile this code (notice the same additional space)
df.loc[df.index.str.contains("Language ")]

# returns
#                     1
# Language family     Austronesian

有没有人能指出我在这里遇到的问题是什么?这是字符串本身造成的还是Pandas身上的虫子什么的?

    • 编辑**原来它不是由尾随空格引起的,因为在.strip()方法之后,它仍然产生相同的错误。
pn9klfpd

pn9klfpd1#

您可能有悬空空格。请使用以下命令清理索引:

df.index = df.index.str.strip()

相关问题