是否有任何方法可以None
在Python 中用Pandas 替换值?
您可以使用df.replace('pre', 'post')
并可以将值替换为另一个值,但如果您想要替换None
值,则无法执行此操作,如果您尝试,则会得到一个奇怪的结果.
所以这是一个例子:
df = DataFrame(['-',3,2,5,1,-5,-1,'-',9])
df.replace('-', 0)
Run Code Online (Sandbox Code Playgroud)
返回成功的结果.
但,
df.replace('-', None)
Run Code Online (Sandbox Code Playgroud)
返回以下结果:
0
0 - // this isn't replaced
1 3
2 2
3 5
4 1
5 -5
6 -1
7 -1 // this is changed to `-1`...
8 9
Run Code Online (Sandbox Code Playgroud)
为什么会返回这么奇怪的结果?
由于我想将这个数据帧倒入MySQL数据库,因此我无法将NaN
值放入数据框中的任何元素中,而是想放入None
.当然,您可以先更改'-'
为NaN
然后转换NaN
为None
,但我想知道为什么数据框以这种可怕的方式运行.
我想在numpy中用NaN替换一个数字,我正在寻找像numpy.nan_to_num这样的函数,反之亦然.
处理不同的数组时,该数字可能会发生变化,因为每个数组都可以唯一定义NoDataValue.我看到人们使用字典,但阵列很大,充满了正面和负面的浮动.我怀疑尝试将所有这些加载到任何东西来创建密钥是没有效率的.
我尝试使用以下和numpy要求我使用any()或all().我意识到我需要迭代元素,但希望内置函数可以实现这一点.
def replaceNoData(scanBlock, NDV):
for n, i in enumerate(array):
if i == NDV:
scanBlock[n] = numpy.nan
Run Code Online (Sandbox Code Playgroud)
NDV是GDAL没有数据值,数组是一个numpy数组.
是一个掩盖阵列的方式可能去?