0

У меня есть более 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) 

К сожалению, это не сработало. Я также пытался маскировать массив, который также не работал.

Причина мне нужно удалить данные моя следующая библиотека не понимает значения нан, она требует строго целые числа, поплавки и т.д.

Я открыт для новых методов для удаления строк данных, если кто имеет какие-либо руководство. Я очень благодарен.

ответ

0

Я бы загружать 2 мерные массивы панд DataFrames, а затем использовать функцию dropna уронить любые строки, содержащие нулевое значение

wspd = pd.read_pickle('/home/wspd').dropna() 
tc = pd.read_pickle('/home/tc').dropna() 

Документация pandas.DataFrame.dropna является here

Смежные вопросы