如何解决将过滤器应用于 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 举报,一经查实,本站将立刻删除。