微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

将过滤器应用于 Pandas 数据透视表会导致数据空白

如何解决将过滤器应用于 Pandas 数据透视表会导致数据空白

使用以下 csv 数据: Data Image

我已将 csv 中的数据加载到 Pandas 数据透视表中,并输出

[[nan nan nan ... nan nan  0.]
 [nan 21 nan ... nan  0. nan]
 [nan nan nan ...  0. nan nan]
 ...
 [23. nan 13. ... nan nan nan]
 [nan nan nan ... nan nan nan]
 [nan 14 nan ... nan nan nan]]

但是在对结果使用 Scipy Gaussian 过滤器之后,数据随后被消隐,如下所示:

  [[nan nan nan ... nan nan nan]
     [nan nan nan ... nan nan nan]
     [nan nan nan ... nan nan nan]
     ...
     [nan nan nan ... nan nan nan]
     [nan nan nan ... nan nan nan]
     [nan nan nan ... nan nan nan]]

有没有办法将高斯滤波器应用于数据透视表而不会使数据消隐?

代码如下:

import pandas as pd
import numpy as np
import scipy as sp
import scipy.ndimage

FILE_PATH = "."
def load_nut_data(file_path=FILE_PATH):
   csv_path = os.path.join(file_path,"csv_file.csv")
   return pd.read_csv(csv_path,usecols = ['GPSLon','GPSLat','NutCount'])
 
nut = load_nut_data()
nut.head()
Z = nut.pivot_table(index='GPSLon',columns='GPSLat',values='NutCount').T.values 
 
print(Z)

Zg= sp.ndimage.filters.gaussian_filter(Z,sigma,mode='grid-constant')

print(Zg)

解决方法

这个过滤器被实现为一维卷积过滤器的序列。如果您的数据是 nans,则这些 nans 作为乘数进入卷积,htnce 将整个卷积结果转换为 nans。考虑用零替换 nans

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。