世界各地的您好程序员!我在根据条件从列表中删除数据框时遇到问题
这是我尝试过的: 1.遍历列表中的每个数据框。 2.检查条件,如果特定列不存在 当前数据框 3.删除数据框
由于某种原因,我收到以下错误:
ValueError:只能比较标记相同的DataFrame对象
def removeCorruptData(array):
for dataframe in array:
if 'LoC' not in dataframe.columns:
array.remove(dataframe);
我希望它能正常工作,但是由于某些原因,我会收到以下错误消息:
ValueError:只能比较标记相同的DataFrame对象。
可悲的是,除了错误消息本身所提供的内容以外,我还没有找到解决问题的方法。如果有人可以帮助,将不胜感激。
答案 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