首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Pandas中使用fillna使用列表填充空值

在Pandas中使用fillna使用列表填充空值
EN

Stack Overflow用户
提问于 2017-11-13 23:04:05
回答 4查看 4.3K关注 0票数 6

给定一个pd.Series,我想用一个列表替换空值。也就是说,给定以下条件:

代码语言:javascript
复制
import numpy as np
import pandas as pd
ser = pd.Series([0,1,np.nan])

我想要一个可以返回

代码语言:javascript
复制
0        0
1        1
2    [nan]

但是如果我尝试使用自然函数,即fillna

代码语言:javascript
复制
result = ser.fillna([np.nan])

但是我得到了一个错误

TypeError:"value“参数必须是标量或字典,但您传递了一个"list”

有什么简单的方法可以解决这个问题吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2017-11-13 23:06:31

使用apply,因为fillna仅处理标量:

代码语言:javascript
复制
print (ser.apply(lambda x: [np.nan] if pd.isnull(x) else x))
0        0
1        1
2    [nan]
dtype: object
票数 8
EN

Stack Overflow用户

发布于 2017-11-13 23:23:10

您可以更改为object

代码语言:javascript
复制
ser=ser.astype('object')

然后分配列表np.nan

代码语言:javascript
复制
ser.loc[ser.isnull()]=[[np.nan]]
票数 3
EN

Stack Overflow用户

发布于 2020-07-15 16:12:21

我最终使用了

代码语言:javascript
复制
ser.loc[ser.isnull()] = ser.loc[ser.isnull()].apply(lambda x: [np.nan]) 

因为pd.isnull(x)会给出模棱两可的真值错误(我在我的系列中也有其他列表)。这是YOBEN_S和jezrael的答案的结合。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47267375

复制
相关文章

相似问题

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