У меня есть более 500 файлов, которые я очистил с использованием фрейма данных pandas, и читаем позже в виде матрицы. Теперь я хочу удалить отсутствующие строки данных из нескольких переменных для всех моих файлов. Каждая переменная довольно длинна для своей формы, например, tc и wspd имеют форму (84479, 558), а давление имеет форму (558,). Я пробовал следующий пример до и работал в прошлом для одномерных массивов с одинаковой формой, но больше не будет работать с двухмерным массивом.Удаление строк данных для нескольких переменных
bad=[]
for i in range(len(p)):
if p[i]==-9999 or tc[i]==-9999:
bad.append(i)
p=numpy.delete(p, bad)
tc=numpy.delete(tc, bad)
Я попытался использовать следующий код вместо этого, но без успеха (к сожалению).
import numpy as n
import pandas as pd
wspd=pd.read_pickle('/home/wspd').as_matrix()
tc=pd.read_pickle('/home/tc').as_matrix()
press=n.load('/home/file1.npz')
p=press['press']
names=press['names']
length=n.arange(0,84479)
for i in range(len(names[0])): #using the first one as a trial to run faster
print i #used later to see how far we have come in the 558 files
bad=[]
for j in range(len(length)):
if (wspd[j,i]==n.nan or tc[j,i]==n.nan):
bad.append(j)
print bad
Оттуда я планирую удалить недостающие данные, как я делал раньше, за исключением индексации размерность которой я удаляемого из моей первой forloop.
new_tc=n.delete(tc[j,:], bad)
К сожалению, это не сработало. Я также пытался маскировать массив, который также не работал.
Причина мне нужно удалить данные моя следующая библиотека не понимает значения нан, она требует строго целые числа, поплавки и т.д.
Я открыт для новых методов для удаления строк данных, если кто имеет какие-либо руководство. Я очень благодарен.