【问题标题】:Deleting row in pandas dataframe without effecting index删除熊猫数据框中的行而不影响索引
【发布时间】:2017-11-29 22:02:23
【问题描述】:

我想知道是否有一种方法可以从 pandas 数据框中删除一行(我一直在使用 df.drop(df.index[], inplace=True)),它不会类似地删除实际索引数字?在浏览了我的数据框并删除了需要删除的行之后,我无法再循环遍历数据了。每当我点击已删除行的索引时,都会出现 KeyError 异常。我尝试重新索引数据框也没有效果......对熊猫来说很新,所以我不确定这里发生了什么。

我只需要能够删除一整行数据并让数据框处理它自己的索引更新,或者能够修复和重新排序我的数据框的索引,这样就没有无效的键。

谢谢!

【问题讨论】:

  • 删除不需要的行后需要重置索引时,只需执行 df.reset_index(inplace=True)。
  • 我试图重置索引并重新索引整个数据帧,但没有运气:(。可能是我没有正确使用这两种方法。几乎就像索引不存在一样甚至没有任何东西可以分配给他们,所以重新索引没有成功。就像重新索引没有看到任何“错误”。谢谢你的帮助,我认为你是正确的我只是不知道是我使用了错误的方法,还是我误解了删除索引的功能及其结果。

标签: python python-3.x pandas ipython jupyter


【解决方案1】:

除非我错过了您的观点,否则很明显,如果您尝试访问您事先删除的内容,您应该会收到一个关键错误。您可能误解了索引在数据框中的工作原理,因此请阅读docs。也许您更愿意将“无效”行的值设置为缺失值而不是删除它们?

【讨论】:

  • 谢谢,感谢您的回答 :)。我假设通过 index 方法从数据框中删除一行,不会破坏数据框的整个索引。事情只会被打乱,因此您仍然可以循环遍历数据框并通过索引正确访问事物。我发现从数据框中删除索引不仅会删除所有数据,而且似乎将该索引的存在吸进了深渊,这让我感到困惑。如果我有 10 行并删除了第 9 行,我认为第 10 行会变成第 9 行。并不是说第 9 行会变成我什至无法再访问以重新分配或重新索引的贫瘠荒地。
  • 我认为你是对的,与其删除索引来删除行,我应该将它们全部重新分配为空。我必须将这些数据框上传到谷歌联系人,所以我担心创建空白联系人,我必须手动完成并稍后删除。因此,只想删除一行(整个联系人),而不是为其分配 NaN 值。你知道另一种像删除列一样删除一行的方法吗?
猜你喜欢
  • 2018-01-02
  • 1970-01-01
  • 2015-06-13
  • 1970-01-01
  • 2016-09-05
  • 1970-01-01
  • 2018-12-23
  • 2020-10-18
  • 2020-01-04
相关资源
最近更新 更多