首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在追加数据时添加缺失数据的NaN?

如何在追加数据时添加缺失数据的NaN?
EN

Stack Overflow用户
提问于 2019-01-24 01:56:32
回答 1查看 273关注 0票数 0

我有一个函数,如下所示:

代码语言:javascript
复制
    def fsheet_DCOP(s,j,k,l):

        ret=pd.DataFrame([])
        j=j[j[3].str.contains(s,na=False)]
        for i in k:
            ret=ret.append(j[j[5] == i])

        ret=ret[ret[7]==l]

        ret=ret[:1] 
        return ret

有时,在传递的数据帧中,在第5列或第7列中找不到匹配项。

在这种情况下,如何使用NaN值或像'0‘这样的默认值填充一行?

我还有其他函数可以访问上面函数返回的值,它不能有空的dataframe。

例如,当传入的输入参数如下:数据帧j是

代码语言:javascript
复制
   3     5   7     9
0  red   sq  side  100
1  blue  ci  rad   4
2  green re  lb    43
3  red   ci  side  53
4  blue  sq  side  2.1
5  red   sq  side  1.1

s='red'
k='sq'
l='side'

它将返回ret为

代码语言:javascript
复制
print(fsheet_DCOP(s,j,k,l))

   9
0  100
5  1.1

但是什么时候

S=‘黄色’

在数据帧j的列3中没有匹配的黄色,因此它将返回一个空数据帧。而不是这样,我怎么能在每次没有匹配的时候添加一个0呢?所以

代码语言:javascript
复制
print(fsheet_DCOP(s,j,k,l))

   9
0  0
5  0
EN

回答 1

Stack Overflow用户

发布于 2019-01-24 06:20:08

很明显,没有选项或方法可以在追加的同时检查值是否为null。所以,我的解决方法是:在函数返回ret变量之前,添加检查ret是否为空,并用一些NaN值填充它。

代码语言:javascript
复制
import numpy as np
    .
    .
    .
   def fsheet_DCOP(s,j,k,l):
           .
           .
           .
            if(ret.empty):
               ret=pd.DataFrame(np.nan, index=[0], columns=[0,24])
            return ret
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54333039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档