我有一个格式类似于表的大型数据集(14列x 10M行)。有些项可以是nan,这是我不想要的,对于两列'x0'和'y0',我想要删除-30到+30之外的值。你知道吗
我的代码,如下所示,一次循环一行数据集,速度非常慢。有没有更有效的方法去除我不想要的线条?你知道吗
def cleanDataset(dataset):
findNanYs = pd.isnull(dataset)
forDeletion = []
for i in range(0,dataset.shape[0]):
if findNanYs.T.any()[i]: # strike NaN
forDeletion.append(i)
elif abs(dataset['x0'][i]) > 30:
forDeletion.append(i)
elif abs(dataset['y0'][i]) > 30:
forDeletion.append(i)
cleanDS = dataset.drop(forDeletion, axis=0)
return cleanDS
您可以尝试:
尝试:
您可以找到有关dropnahere的更多信息
除了上面给出的dropna之外,使用query来过滤数据,对于大表来说,这在内存方面效率更高,如下所示:
相关问题 更多 >
编程相关推荐