小编dre*_*eab的帖子

在写入to_netcdf时,为xarray数据集中的许多变量指定编码/压缩

我一直在写一些有多个变量的xarray.Datasets.目前,为了保持大小可管理,我指定了编码,例如zlib,但需要根据变量应用于变量(dataArray).

将相同的编码参数应用于所有变量的好方法是什么?例如

<xarray.Dataset>
Dimensions:  (lat: 1440, lon: 2880)
Coordinates:
  * lat      (lat) float64 -90.0 -89.88 -89.75 -89.62 -89.5 -89.38 -89.25 ...
  * lon      (lon) float64 -180.0 -179.9 -179.8 -179.6 -179.5 -179.4 -179.2 ...
Data variables:
a1     (lat, lon) float64 nan nan nan nan nan nan nan nan 0.0 ...
b     (lat, lon) float64 nan nan nan nan nan nan 0.0 0.0 0.0 ...
c     (lat, lon) float64 nan nan nan nan nan nan nan nan 0.0 ...
d      (lat, lon) …
Run Code Online (Sandbox Code Playgroud)

python-xarray

5
推荐指数
1
解决办法
1025
查看次数

对于带有填充数字的/ L循环

我希望创建一个嵌套的for循环来处理一些文件.我已经广泛寻找解决方案,并找到了许多相似的版本,但由于这是我第一次将方法组合起来做我想做的事情.

基本上 - 我想要一个FOR/L循环,循环遍历一系列从001到500的填充数字.

我知道我可以指定一个范围(1,1,500),但显然不是(001,001,500).如何添加00,然后当%% a> 9时,只是0?我想这可能是一种刺痛,但也许还有另一种方式?

我希望它的代码(显然是错误的):

@echo off
for %%a in (001,001,500) do (
echo %%a
for %%s in (control scenario) do (
echo %%s
svic_ensemble.exe 28009_Trent_at_Colwick.cal Trent_%%s_%%a.txt 28009_Trent_at_Colwick.txt     Trent_%%s_%%a.out
)
)
pause
Run Code Online (Sandbox Code Playgroud)

非常感谢

埃德

for-loop batch-file range

4
推荐指数
2
解决办法
1万
查看次数

Python xarray.concat然后xarray.to_netcdf生成巨大的新文件大小

所以我有3个netcdf4文件(每个约90 MB),我想使用包xarray连接.每个文件有一个变量(dis),以0.5度分辨率(lat,lon)表示365天(时间).我的目标是连接三个文件,使得我们的时间序列为1095天(3年).

每个文件(2007年,2008年,2009年)都有:1个变量:dis 3坐标:time,lat,lon ......就这样

<xarray.Dataset>
Dimensions:  (lat: 360, lon: 720, time: 365)
Coordinates:
  * lon      (lon) float32 -179.75 -179.25 -178.75 -178.25 -177.75 -177.25    ...
  * lat      (lat) float32 89.75 89.25 88.75 88.25 87.75 87.25 86.75 86.25 ...
  * time     (time) datetime64[ns] 2007-01-01 2007-01-02 2007-01-03 ...
Data variables:
    dis      (time, lat, lon) float64 nan nan nan nan nan nan nan nan nan ...
Run Code Online (Sandbox Code Playgroud)

我得到它们导入并使用concat模块连接,我认为成功.在这种情况下,模块从filestrF中读出3个netcdf文件名

flist1 = [1,2,3]
ds_new = xr.concat([xr.open_dataset(filestrF[0,1,1,f]) for f in flist1],dim='time')
Run Code Online (Sandbox Code Playgroud)

现在显示新数据集的新细节:

Dimensions:  (lat: 360, lon: 720, …
Run Code Online (Sandbox Code Playgroud)

python concatenation python-xarray

4
推荐指数
1
解决办法
703
查看次数

熊猫表子集给出无效的类型比较错误

我正在使用熊猫,并希望选择数据子集并将其应用于其他列。例如

  • 如果A列中有数据;和
  • 如果B列中没有数据;
  • 然后,将A列中的数据应用于D列

我现在使用.isnull()和可以正常工作.notnull()。例如

df = pd.DataFrame({'A' : pd.Series(np.random.randn(4)),
                       'B' : pd.Series(np.nan),
                       'C' : pd.Series(['yes','yes','no','maybe'])})
df['D']=''

df
Out[44]: 
          A   B      C D
0  0.516752 NaN    yes  
1 -0.513194 NaN    yes  
2  0.861617 NaN     no  
3 -0.026287 NaN  maybe  

# Now try the first conditional expression
df['D'][df['A'].notnull() & df['B'].isnull()] \
=  df['A'][df['A'].notnull() & df['B'].isnull()]   
df
Out[46]: 
          A   B      C          D
0  0.516752 NaN    yes   0.516752
1 -0.513194 NaN    yes  -0.513194
2  0.861617 NaN     no   0.861617
3 …
Run Code Online (Sandbox Code Playgroud)

python indexing conditional-statements dataframe pandas

4
推荐指数
2
解决办法
1万
查看次数