python - Pandas 用新集替换选择性数据

标签 python pandas dataframe

我有一个数字高程图 Tiff 文件,通过使用 Gdal 模块和 pandas ,所有数据都写入 dem.xlsx excel 文件我的目的是用 1 替换每行的最大值,用 0 替换其他正值,用 -9999 替换负值,然后写结果在新的 excel 中。但是,我无法替换值并写入新的 excel。

这是我的代码:

import pandas as pd
import xlrd
import xlsxwriter
import gdal

layer = gdal.Open(r"C:/Users/owrasa/PycharmProjects/den/dem/dem.tif")
arr=layer.ReadAsArray()
df=pd.DataFrame(arr)

writer1 = pd.ExcelWriter(
    'dem.xlsx', engine='xlsxwriter')
df.to_excel(writer1, 'Sheet1')
writer1.save()
df=pd.read_excel("dem.xlsx")
writer2 = pd.ExcelWriter('output.xlsx',engine='xlsxwriter')


for i in df:
    for a in range(2851):
        if i>0 and i<df.ix[a].max():
            df.replace(i,0)
        elif i==df.ix[a].max():
            df.replace(i,1)
        else:
            df.replace(i,-9999)

    df.to_excel(writer2, 'Sheet1')
    writer2.save()

dem excel 文件有 2098 行 x 2851 列。

最佳答案

尝试:

df.eq(df.max(1), 0).sub(df.lt(0).mul(9999))

enter image description here

关于python - Pandas 用新集替换选择性数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40698263/

相关文章:

python - Pandas Dataframe 到 JSON 层次结构

R - 如何重新排序行索引号

python - 使用列表理解和 dict 进行正则表达式替换

python - 与仅将 Foundation 文件放入静态相比,使用 Foundation Django 包有什么好处

python - 对大型分隔文件进行子集化的有效方法

python - 数据框的原始值没有变化

python - 如何从 pandas 的日期列中查找不匹配的值

python - 使用 Python 的 GCP 数据流。 "AttributeError: Can' t 获取模块 '_JsonSink' 上的属性 'dataflow_worker.start'

python - 如何根据一周中不同日期的不同时间段修剪数据集?

Scala/Spark 数据帧 : join rows to get a pair within itself