如何从 pandas 数据框中删除多组行
how to drop multiple sets of rows from a pandas dataframe
我正在尝试删除我已确定为错误的数据帧(马刺)行。
我看到了奇怪的行为。
spurs = [(16, 62), (72, 83)]
for spur in spurs:
full_path.drop(full_path.index[spur[0]: spur[1]], inplace=True)
它只会在循环中丢弃数据帧中的第一个支线。如果我这样做:
full_path.drop(full_path.index[spurs[0][0]: spurs[0][1]], inplace=True)
full_path.drop(full_path.index[spurs[1][0]: spurs[1][1]], inplace=True)
我也有同样的行为。但如果我单独放下它们,它就会起作用。
如有任何帮助,我们将不胜感激。
您应该避免循环中的 reshaping/dropping 行。相反,收集所有要放入 list
中的索引,然后立即 drop
它们:
drop_indices = list()
for spur in spurs:
drop_indices += list(full_path.index[spur[0]: spur[1]])
full_path = full_path.drop(drop_indices)
我正在尝试删除我已确定为错误的数据帧(马刺)行。
我看到了奇怪的行为。
spurs = [(16, 62), (72, 83)]
for spur in spurs:
full_path.drop(full_path.index[spur[0]: spur[1]], inplace=True)
它只会在循环中丢弃数据帧中的第一个支线。如果我这样做:
full_path.drop(full_path.index[spurs[0][0]: spurs[0][1]], inplace=True)
full_path.drop(full_path.index[spurs[1][0]: spurs[1][1]], inplace=True)
我也有同样的行为。但如果我单独放下它们,它就会起作用。
如有任何帮助,我们将不胜感激。
您应该避免循环中的 reshaping/dropping 行。相反,收集所有要放入 list
中的索引,然后立即 drop
它们:
drop_indices = list()
for spur in spurs:
drop_indices += list(full_path.index[spur[0]: spur[1]])
full_path = full_path.drop(drop_indices)