我已經使用 python 提取了一個 NC 檔案,在處理資料后,最終輸出是一個 (199, 314) 的陣列。我將陣列轉換為資料框,但行名和列名(索引)分別從零開始到 199 和 314。
from netCDF4 import Dataset
import numpy as np
import pandas as pd
data = Dataset('GolestanM.nc', 'r')
dims = data.dimensions
ndims = len(dims)
vars = data.variables
nvars = len(vars)
attrs = data.ncattrs
lon = data.variables['lon'][:]
lat = data.variables['lat'][:]
t = data.variables['time'][496]
fire = data.variables['FireMask'][496,:,:]
dataset = pd.DataFrame(fire)
但是,我想使用以下格式重命名這些索引:列:名字 53.7042 然后 0.0083 直到名稱達到 56.3208
[0-->53.7042, 1-->53.7.25, ... , 314-->53.3208]
行:第一個名稱 38.1125 然后是 -0.0083 直到名稱到達 36.4625
[0-->38.1125, 1-->38.1042, ... , 199-->36.4625]
為此,我有以下代碼:
dataset = dataset.rename(index={0: "38.1125"})
dataset = dataset.rename(columns={0: "53.7042"})
dataset = dataset.rename(index = lambda x: x (0.0083),
columns = lambda x: x (0.0083))
但是這樣做會給我以下錯誤:
TypeError: can only concatenate str (not "float") to str
任何人都可以幫助我解決問題。
uj5u.com熱心網友回復:
想法x在 lambda 函式中是多個(列或索引名稱):
#sample data
dataset = pd.DataFrame(0, index=range(10), columns=range(10))
dataset = dataset.rename(index = lambda x: 38.1125 - 0.0083 * x ,
columns = lambda x: 53.7042 0.0083* x)
print (dataset)
53.7042 53.7125 53.7208 53.7291 53.7374 53.7457 53.7540 \
38.1125 0 0 0 0 0 0 0
38.1042 0 0 0 0 0 0 0
38.0959 0 0 0 0 0 0 0
38.0876 0 0 0 0 0 0 0
38.0793 0 0 0 0 0 0 0
38.0710 0 0 0 0 0 0 0
38.0627 0 0 0 0 0 0 0
38.0544 0 0 0 0 0 0 0
38.0461 0 0 0 0 0 0 0
38.0378 0 0 0 0 0 0 0
53.7623 53.7706 53.7789
38.1125 0 0 0
38.1042 0 0 0
38.0959 0 0 0
38.0876 0 0 0
38.0793 0 0 0
38.0710 0 0 0
38.0627 0 0 0
38.0544 0 0 0
38.0461 0 0 0
38.0378 0 0 0
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/384387.html
下一篇:替換csv列的特定值中的“空格”
