如何从数组中删除数据框

时间:2019-06-25 20:34:40

标签: python-3.x pandas dataframe

世界各地的您好程序员!我在根据条件从列表中删除数据框时遇到问题

这是我尝试过的: 1.遍历列表中的每个数据框。 2.检查条件,如果特定列不存在 当前数据框 3.删除数据框

由于某种原因,我收到以下错误:

ValueError:只能比较标记相同的DataFrame对象

def removeCorruptData(array):
    for dataframe in array:
        if 'LoC' not in dataframe.columns:
            array.remove(dataframe);

我希望它能正常工作,但是由于某些原因,我会收到以下错误消息:

ValueError:只能比较标记相同的DataFrame对象。

可悲的是,除了错误消息本身所提供的内容以外,我还没有找到解决问题的方法。如果有人可以帮助,将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的问题

您正尝试将列表中的_i与数据框值一起使用。 Python将比较该数据框与其他数据框以确定要删除的数据框。这不理想。

我会做什么

这将变异您现有的列表,而不是,而不是返回满足条件的列表副本。

向后浏览列表,同时跟踪您的位置。您可以使用pop索引值来确定应该def removeCorruptData(array): n = len(array) for _i, d in enumerate(array[::-1], 1): if 'LoC' not in d: array.pop(n - _i); 禁用的内容。因为要倒退,所以您不必担心列表的位置会改变您下方的索引值。

zip