删除多个变量的数据行

2024-06-28 20:10:12 发布

您现在位置:Python中文网/ 问答频道 /正文

我有超过500个文件,我用熊猫数据帧清理,并在稍后作为矩阵读取。我现在想从多个变量中删除整个文件中丢失的数据行。每个变量的形状都相当长,例如,tc和wspd的形状是(84479558),pressure的形状是(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)

不幸的是,这并没有奏效。我也尝试过掩蔽数组,但也没有起作用。你知道吗

我需要删除数据的原因是我的下一个库不理解nan值,它需要严格的整数、浮点等

如果有人有任何指导的话,我对删除数据行的新方法持开放态度。我非常感激。你知道吗


Tags: 数据innumpyforlenasrange数组
1条回答
网友
1楼 · 发布于 2024-06-28 20:10:12

我会将您的二维数组作为数据帧加载,然后使用dropna函数删除任何包含空值的行

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

的文档熊猫.DataFrame.dropna是here

相关问题 更多 >