Python按照某些列去重,可用drop_duplicates函数轻松处理。本文致力用简洁的语言介绍该函数。...从结果知,参数为默认值时,是在原数据的copy上删除数据,保留重复数据第一条并返回新数据框。 感兴趣的可以打印name数据框,删重操作不影响name的值。...从结果知,参数keep='last',是在原数据的copy上删除数据,保留重复数据最后一条并返回新数据框,不影响原始数据框name。...从结果知,参数keep=False,是把原数据copy一份,在copy数据框中删除全部重复数据,并返回新数据框,不影响原始数据框name。...如需处理这种类型的数据去重问题,参见本公众号中的文章【Python】基于多列组合删除数据框中的重复值。 -end-
Dataset xarray.Dataset 是和 DataFrame 相同的多维数组。这是一个维度对齐的标签数组(DataArray)的类字典容器。它用来展示NetCDF文件格式的数据。...OrderedDict 数据或坐标中变量的区别是语义上的,你可以忽略这些差异。...访问数据集中的字典可以获取任意类别的变量。然而,xarray正是利用了索引和计算之间的差异。坐标中表示的是常数/固定/独立的量,而数据中表示的是变化/测量/依赖的量。...drop,那么就会删除使用此维度名的所有变量: >> ds xarray.Dataset> Dimensions: (time: 3, x: 2, y: 2) Coordinates...使用 xarray 创建新数据集不会造成性能损失,即使是从文件中加载。创建新对象代替那些存在的”变异“变量,对于理解代码来说是有利的。
距平 下面便提出一个问题:为什么要费尽心思研究变量的距平而非变量的原始数据?若针对于温度这个变量而言,即为什么要使用温度距平(偏离平均值的值)而不非研究绝对温度的变化?...某些地域的气象观测站点分布稀少(如撒哈拉沙漠地区、偏远的密林),这就意味着为取得格点数据(栅格数据)必须对离散的站点数据值在较大且站点分布稀疏区域内进行插值。这会带来很大的数据不真实性。...对于那些山区中的数据(山区中的的气象观测大多是有人居住地区),必须考虑海拔高度对区域平均温度的影响。...在这种情况下,整合了数据,使得不同地域的变量能够得以进行比较,以便反映一个区域内不同地方的变量分布形式。...:https://www.ncdc.noaa.gov/monitoring-references/faq/anomalies.php Groupby(Ⅲ) Transformations 转换 下面需从数据集中删除气候平均
xarray中的坐标有两种类型: 维度坐标 是名称和唯一的维度名称相同的1D数组(打印Dataset或 DataArray时 *号标记的变量)。...非维度坐标 是包含坐标数据的变量,但不是维度坐标。它们可以是多维的,而且非维度坐标名称和它的维度名称没有关系。非维度坐标在绘图或索引时非常有用。除此之外, xarray 不会限制使用与其相关的值。...注: xarray 中的术语和 CF 中的术语不同。CF中的维度坐标称作坐标变量,而非维度坐标称作辅助坐标变量 [注1]。CF是指 Climate and Forecast [注2]。...转换非维度坐标变量为数据变量: >> ds.reset_coords() xarray.Dataset> Dimensions: (time: 3, x: 2, y: 2) Coordinates...因为在 Dataset 和 DataArray 对象中每个多索引层都可以通过 ‘virtual’ 坐标获取,它的名称不能与相同对象的其它层,坐标和数据变量的名称冲突。
:数字,日期或字符串1D数组) attrs:包含元数据信息 xarray 使用 dims 和 coords 实现核心的元数据操作。...基于 pandas 中 DataFrame 和 Series 的索引功能,坐标可进行更快速的索引和对齐操作。 DataArray 对象有 name 和 attrs 属性,attrs 包含了元数据信息。...,如果缺省的话,可能会从 coords 中获取维度名信息,否则会默认指定维度名:dim_+数字 attrs : 属性字典 name:实例名称 # 加载库 import pandas as pd import...通过属性可以获取 foo 数组中的变量信息: >> foo.dims ('dim_0', 'dim_1') >> foo.dim_0 xarray.DataArray 'dim_0' (dim_0:...通过类似字典操作的语法可以设置或删除坐标。
函数有 preprocess 参数,这个参数主要是在读取文件之前先进行一定的处理,如果批量操作涉及到维度合并等操作时比较有用,比如要合并的维度不是坐标,可能会出现以下错误,需要先将合并的维度设置为坐标...,比如通过 add_offset 和 scales 调整变量。...数据处理 数据处理的内容比较多,这里主要以数据的索引、筛选为主,关于数据的插值和统计计算以后再说(又拖了一次,哈哈) 第一个要说的是后台留言询问的,如果从daily的nc文件中抽取某些年份1-4月的数据...,以前也说到过 xarray系列|教你更高效的进行数据处理和分析。...注意如果涉及到其它库的数据对象时可能会失效。 涉及到大量的数据处理时,可以结合 xarray 和 dask 改善效率,但是 dask 的学习成本稍高一些。
xarray (之前的 xray) 是一个开源的python库。通过提供 pandas 的核心数据结构N维变形功能,从而将 pandas 的标签数据功能应用到物理科学领域。...主要是想提供一个类似pandas并且能与pandas兼容的工具包来进行多维数组(而不是pandas 所擅长的表格数据)分析。采用的是地球科学领域广泛使用的自描述数据通用数据模型实现上述功能。...(y: 3)> array([-0.883279, 0.199889, -0.042941]) Dimensions without coordinates: y 利用基于维度名的方式进行广播计算操作...是 xarray.DataArray 对象的类字典容器,也可以认为这是一个多维的 DataFrame。...-0.01396 , -0.362543]]) Coordinates: * x (x) <U1 'a' 'b' Dimensions without coordinates: y 数据集中的变量可以有不同的类型甚至不同的维度
\\sst.mnmean.nc" # 删除一些不必要的变量 ds = xr.open_dataset(path, drop_variables=["time_bnds"]) # 提取1960年~2018...ds.sst.isel(time=0).plot(vmin=-2, vmax=30) 上述代码选取了时间维度第一个的变量 sst,同时通过vmin和vmax定义色标的绘制变量数值范围为-2 至 30....sst_kelvin 可以发现再进行计算操作后,数据集的维度和坐标都没有发生变化。...apply_ufunc 函数的使用 上面可以调用np.log(ds)并使其在 xarray 中“正常工作”是非常幸运的,因为并非所有的库都能直接在 xarray 中正常工作。...import gsw # 若没有安装则需要在conda的base环境中运行下面的代码进行安装 # pip install gsw 比如我们需要进行将上述数据的 IPTS-68 温度转换为 ITS-90
对于实际生活中的经纬度,纬度一般是从90°S至90°N(-90°N~90°N),经度一般是从0°~360°。这两个数组并不吻合。怎么办?...与位置的描述有同样的问题,维度t在Python数组中是从0开始的,不是一个现实生活中的时间。基于上面同样的思想,我们可以定义t=0时,映射的时间坐标time = 2021-01-01。...xarray对于数据的显示有两种显示形式: html形式(仅在Jupyter 笔记本中可用,Jupyter 笔记本中默认以html形式显示); text形式。...多个盘状垛堞的图标可以查看对应变量的部分数据。如果坐标名称与维度名称重名,则用粗体标记维度名称,而非text形式的*。默认情况下,若在笔记本中直接查看某个xarray对象,直接写对象名称即可。...小括号的信息包含下列信息 维度名称。在命名维度名称的同时,也就确定了维度的大小。例子中包含两个维度x和y。 数据。数据大小的确定根据维度的大小所决定。
多番比对,选用xarray,解查安抚,化繁为简,最为称心。 说人话就是,经学前班大队长亲测利用Python中的xarray库处理nc数据非常方便。...里面包含各个坐标 attrs 获取原始数据的属性,比如变量的名字、单位等 Dataset Dataset可以简单的理解为由多个DataArray组成的集合,它有如下几个重要的属性 dims 获取维度的名字...提取物理量 从文件中读取数据ds = xarray.open_dataset() 假如数据中含有一个名为var的物理量可以通过ds.var或ds[var]来获取 实例 此处使用的是ERA-Interim...# 取出ds中名为t2m的物理量,可以看到它的维度,坐标系,以及t2m有单位和名字两个属性 >>>ds['t2m'] xarray.DataArray 't2m' (time: 12, latitude...可以清晰的了解nc数据中的维度、坐标、物理量以及各种属性等信息。
使用过WRF的人都知道,它的模拟结果是按照我们指定的时间间隔和模拟时间段依次输出的。但在处理数据的时候呢,比如想画一个时间趋势图之类的时候,挨个读取数据非常繁琐。...我们希望能够把所有的数据或者某个我们关心的变量单独提取出来,让其按照指定的维度,如时间维度来排序并整合成一个文件。...下面我就分享一下我在日常科研中为了解决这个问题而写的代码,供大家参考使用(代码很简单, 大家只需要把文件名、路径改成自己的就可以用了)。...list_names_sort = np.sort(list_names) 到这里,输出结果如下(未截图完全): 下面分别展示选择单个变量进行合并以及将所有变量按照指定维度进行合并。...这里用了concat函数,具体大家可以见从xarray走向netCDF处理(四):合并与计算进行了解。
当要在一个文件中写入多个组时,传入 mode = 'a' 给 to_netcdf ,从而确保每一次调用都不会删除文件。 除非执行一系列计算操作,否则 netCDF 文件中的值是不会加载到内存中的。...写入编码数据 你也可以自定义 xarray 如何为 netCDF 文件中的每个数据集变量提供编码信息。encoding 参数接收包含编码信息的键值对字典。...这些信息会保存为 netCDF 变量的编码信息,从而使得 xarray 能够更准确的读取编码数据。 注意: 是否使用编码选项是可选的。..._FillValue:当保存 xarray 对象到文件时,xarray 变量中的 Nan 会映射为此属性包含的值。这在转换具有缺省值的浮点数为整数时就显得非常重要了。...可以执行一些选择操作 if transform_func is not None: ds = transform_func(ds) # 从转换数据集中加载所有数据
近几年,python在气象领域的发展也越来越快,同时出现了很多用于处理气象数据的python包。比如和NCL中的 WRF_ARWUser库类似的 wrf-python模块。...p = getvar(ncfile, "P") 关闭 xarray 和 metadata 有时候你只需要返回常规的 numpy 数组,而不关心元数据。通过以下两种方式可以禁用元数据。...如果指定值的话,那么从每个文件中提取变量时,指定值将应用于每个文件。在具有多个时刻的多个文件中,这样做可能是没有意义的,因为每个文件的第 n 个索引可能表示不同的时刻。...然而,在字典中所有的WRF文件都应包含相同的维度。结果是一个数组,最左侧的维度是字典中的键。同样允许使用嵌套字典。...对这三种绘图系统,当使用 xarray 时通过变量可直接确定地图对象,如果没有使用 xarray,可从 WRF 输出文件获取。 还包括直接从 xarray 切片中获取地理边界的函数。
多番比对,选用xarray,解查安抚,化繁为简,最为称心。 说人话就是,经学前班大队长亲测利用Python中的xarray库处理nc数据非常方便。...里面包含各个坐标 attrs 获取原始数据的属性,比如变量的名字、单位等 Dataset Dataset可以简单的理解为由多个DataArray组成的集合,它有如下几个重要的属性 dims 获取维度的名字...,比如变量的名字、单位等 数据结构图示 数据类型的使用 读取数据: xarray.open_dataset()读取Dataset类型数据,即能读取多个物理量。...提取物理量 从文件中读取数据ds = xarray.open_dataset() 假如数据中含有一个名为var的物理量可以通过ds.var或ds[var]来获取 实例 此处使用的是ERA-Interim...可以清晰的了解nc数据中的维度、坐标、物理量以及各种属性等信息。
类似pandas对象,xarray也对象支持沿着每个维度基于整数和标签的查找。 但是xarray对象还具有命名维度,因此您可以选择使用维度名称代替维度的整数索引。...以上方法均是针对维度坐标变量。...比如:mda.sel(x={'one': 'a'}, two=0) 类似 pandas,xarray 可以从多索引中选择部分索引。当多索引将为单索引时,返回的对象会重命名维度和坐标。...xarray 返回的结果比 pandas 更明确,不会返回 SettingWithCopy warnings 对齐与重索引 xarray 中的 reindex,reindex_like 及 align...原始数据是新对象的子集,而原数据中没有的数据用 Nan填充。 xarray 在执行合并多对象操作时会自动对齐。手动对齐能够提高效率。
今天这是最后一期介绍用xarray处理nc数据了,打算聊一下如何做数据合并与计算。 数据合并 数据合并主要是两种形式 维度的拼接:如将日数据合成为年数据,就属于在时间维度上的合并。...变量的合并:如将多个物理量合到同一个Dataset中。 xarray围绕着这两种合并方式介绍了concatenate, merge, combine, update四种方法。...我在这里就挑最常用的跟大家聊聊。 维度拼接 使用 concat() 方法可以实现维度的拼接。 下面是演示数据,来源于2018年和2019年前三个月的ERA-Interim月平均数据。...使用 merge() 方法,可以将ds2018中的u10和ds2019中的t2m合并到一起,而且在时间维上缺失会自动设置为nan。...在时间维上的计算还有很多贴心的用法,比如月数据转年数据,月数据转季节数据。
前面有关xarray已经讲了3期了,介绍了数据索引,数据结构还有插值和掩膜。今天这是最后一期介绍用xarray处理nc数据了,打算聊一下如何做数据合并与计算。...数据合并 数据合并主要是两种形式 维度的拼接:如将日数据合成为年数据,就属于在时间维度上的合并。 变量的合并:如将多个物理量合到同一个Dataset中。...维度拼接 使用 concat() 方法可以实现维度的拼接。 下面是演示数据,来源于2018年和2019年前三个月的ERA-Interim月平均数据。...使用 merge() 方法,可以将ds2018中的u10和ds2019中的t2m合并到一起,而且在时间维上缺失会自动设置为nan。...在时间维上的计算还有很多贴心的用法,比如月数据转年数据,月数据转季节数据。
利用 pandas 和 xarray 整理气象站点数据 平时用 xarray 库在处理 nc 格式的数据非常方便,但偶尔还是要用到一些站点数据来辅助分析,而站点数据一般都是用文本文件存储的,比如下图这种格式...,从外到内的坐标依次是:年、月、站点、日 ?...用Python处理这种文本列表就需要用上 pandas 库了, xarray 库就是基于 pandas 的,虽然天天在用 xarray ,但是这还是第一次正儿八经用 pandas 处理数据,就当做一次学习的过程啦...plt 定义处理过程中的函数: 处理时间坐标,利用 datetime 将整形的年、月、日转换为 pandas 的时间戳 def YMD_todatetime(ds): # 读取年月日数据,转换为...) na_values 选项将把指定的值替换为 Nan parse_dates=False 防止将某些字符解析为日期 StaDir = '.
前言 首先,要快速熟悉一个陌生的nc格式数据,你可以使用Python中的xarray库。xarray是一个用于处理多维数组的强大工具,特别适用于处理带有标签的多维数据。...它提供了一种直观的方式来组织、分析和可视化数据,尤其适用于气候科学和地球科学领域的数据处理。 xarray库的核心数据结构是DataArray和Dataset。...通过使用xarray库,你可以快速加载、检查和分析nc格式的数据,以便更好地理解和利用这些数据。...接下来,我将为你提供一个简单的xarray库介绍,以帮助你更好地理解如何使用它来处理陌生的nc格式数据。...You are running version 2.14.1 可以看到有pre和stn两个变量,数据单位说是mm/month,那么pre就是月降水 再看维度,(time, lat, lon) 下面对数据进行切片
领取专属 10元无门槛券
手把手带您无忧上云