Python 从已转换为列表的dataarray中删除坐标
我有一个dataarray,它包含了全球范围内lat、lon点上的值列表。我想为特定城市提供一个lat,lon值列表,并应用这些lat,lon点的值来创建一个数据帧。为了实现这一点,我执行下面的代码Python 从已转换为列表的dataarray中删除坐标,python,pandas,list,dataframe,python-xarray,Python,Pandas,List,Dataframe,Python Xarray,我有一个dataarray,它包含了全球范围内lat、lon点上的值列表。我想为特定城市提供一个lat,lon值列表,并应用这些lat,lon点的值来创建一个数据帧。为了实现这一点,我执行下面的代码 df1=pd.read_csv('E:/Riskpulse_HD/TroPYcal/GenscapePortList.csv') lats=df1['Latitude'] lons=df1['Longitude'] count_city=[] for idx,(lon,lat) in enume
df1=pd.read_csv('E:/Riskpulse_HD/TroPYcal/GenscapePortList.csv')
lats=df1['Latitude']
lons=df1['Longitude']
count_city=[]
for idx,(lon,lat) in enumerate(zip(lons,lats)):
val = grid.sel(lat=lat, lon=lon, method='nearest')
count_city.append(val)
print(np.shape(count_city))
打印出来的图像如下所示:
[<xarray.DataArray ()>
array(0.)
Coordinates:
lat float64 40.0
lon float64 28.0,
<xarray.DataArray ()>
array(0.)
Coordinates:
lat float64 40.0
lon float64 28.0,
<xarray.DataArray ()>
array(0.)
Coordinates:
lat float64 42.0
lon float64 28.0,
df1['Counts']= count_city
df1.head()
Latitude Longitude Port Name Counts
0 39.871112 20.003421 Sarande <xarray.DataArray ()>\narray(0.)\nCoordinates:...
1 40.450605 19.483051 Vlora <xarray.DataArray ()>\narray(0.)\nCoordinates:...
2 41.810046 19.584720 Shengjin <xarray.DataArray ()>\narray(0.)\nCoordinates:...
3 41.308849 19.454677 Durres <xarray.DataArray ()>\narray(0.)\nCoordinates:...
4 35.819101 -0.247319 Bettioua <xarray.DataArray ()>\narray(0.)\nCoordinates:...
我只需要所有与坐标相关的值。当类型是dataarray,但不确定是否有列表时,我熟悉如何执行此操作。代码的结果确实是一个列表,但却是一个
dataarray
对象的列表。从:
xarray努力做到自一致:对数据数组
(resp.数据集
)的操作返回另一个数据数组
(resp.数据集
)对象。特别是,返回标量值的操作(例如,索引或聚合,如应用于所有轴的平均值或总和)也将返回xarray对象
要获得numpy数组,您必须添加(如果使用Dask数组并希望保留底层数据结构,也可以是.data
)
你能把数据数组转换成列表吗<代码>列表()
val = grid.sel(lat=lat, lon=lon, method='nearest')