Python将NAN更改为零向量

时间:2019-03-13 13:58:19

标签: python python-3.x pandas nan fillna

我在Python中有一个问题。我使用doc2vec建立了一个段落向量,并将其转换为时间序列。因此,我有一个索引,该索引是日期,然后是8家公司,并且每天都有一个向量为100的矢量,每个公司代表新闻文章。但是,有些日子里没有文章,这些文章返回NaN值。现在,我想将它们转换为尺寸为100的零向量。

我尝试使用以下代码段来做到这一点:

test_df.fillna(value=np.zeros(100) , inplace = True)  

但是,这不起作用,因为我无法用列表或数组替换NaN。有解决这个问题的方法吗?

非常感谢您!

1 个答案:

答案 0 :(得分:1)

也许您可以尝试:

    private String getfileExtension(Uri uri)
        {
            String extension;
            ContentResolver contentResolver = getContentResolver();
            MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton();
            extension= mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(uri)); 
            return extension;
        }

有关其外观的示例(只有长度为2的向量才能使内容清晰):

zeros = np.zeros(100)
series.apply(lambda x: x if isinstance(x,np.ndarray) else zeros)

如果您的数据在DataFrame中,则适用于applymap的类似模式:

series = pd.Series({1:np.array([1,2]), 2: np.nan, 3: np.array([3,4])})
series

1    [1, 2]
2       NaN
3    [3, 4]
dtype: object

zeros = np.zeros(2)
series = series.apply(lambda x: x if isinstance(x,np.ndarray) else zeros)
series

1        [1, 2]
2    [0.0, 0.0]
3        [3, 4]
dtype: object