【发布时间】:2018-04-26 03:11:52
【问题描述】:
我需要删除日期在 2000 年之前的数据框的所有列。
一般做法是:
columnstokeep = list(DF) #gives me the column names
for i in range(len(columnstokeep)): #get rid of dates before year 2000
if int(columnstokeep[i][:4])<2000:
columnstokeep.remove(columnstokeep[i])
DF = DF[columnstokeep] #the new dataframe
我一直遇到列表索引超出范围错误。
这是因为每次我删除列表中的一个元素时 len, in range(len(columnstokeep)) 都会发生变化吗?还是 range(len(columnstokeep)) 在循环期间保持相同的值?
这是数据框
谢谢
【问题讨论】:
-
你能举一个数据框的例子吗?
-
你可能想要“for i in range(len(columnstokeep)-1)”
-
在迭代列表时为什么不应该更改列表长度有多个重复项。而是重建列表。但它们与 pandas 并不真正相关,因为首先应该需要像这样进行迭代。你能举个 df 的例子吗?