如何解决通过 xarray DataArray 对象列表设置 Pandas DataFrame 列
我正在尝试将一些时间序列数据与 Pandas DataFrame 中的元数据相关联。
当我尝试使用 DataArray 对象列表在 DataFrame 中创建/设置 data
列时:
mydata['data'] = [da1,da2,...]
Python 似乎卡住了。
分配带有 DataArray 列表的列时的键盘中断显示此回溯:
Traceback (most recent call last):
File "hatch_vs_cut.py",line 285,in <module>
cut_data = load_antenna_cut_data(cut_dir,cut_expfile)
File "hatch_vs_cut.py",line 172,in load_antenna_cut_data
expinfo.loc[:,'data'] = data_list
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/pandas/core/indexing.py",line 671,in __setitem__
self._setitem_with_indexer(indexer,value)
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/pandas/core/indexing.py",line 992,in _setitem_with_indexer
elif np.ndim(value) == 2:
File "<__array_function__ internals>",line 5,in ndim
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/numpy/core/fromnumeric.py",line 3072,in ndim
return asarray(a).ndim
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/numpy/core/_asarray.py",line 85,in asarray
return array(a,dtype,copy=False,order=order)
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/common.py",line 143,in _iter
yield self[n]
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/dataarray.py",line 701,in __getitem__
return self.isel(indexers=self._item_key_to_dict(key))
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/dataarray.py",line 1114,in isel
coord_value = coord_value.isel(coord_indexers)
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/variable.py",line 1120,in isel
return self[key]
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/variable.py",line 772,in __getitem__
return self._finalize_indexing_result(dims,data)
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/variable.py",line 2454,in _finalize_indexing_result
return Variable(dims,data,self._attrs,self._encoding)
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/variable.py",line 328,in __init__
self._data = as_compatible_data(data,fastpath=fastpath)
File "/home/user/anaconda3/envs/track/lib/python3.8/site-packages/xarray/core/variable.py",line 187,in as_compatible_data
def as_compatible_data(data,fastpath=False):
KeyboardInterrupt
看起来 xarray 在试图在维度之间进行一些奇特的匹配时陷入困境。
但是,如果我将相同的数据取出到 xarray Dataset 对象中,似乎没有问题:
ds1 = <fold data from da1 into a xarray.Dataset>
...
mydata['data'] = [ds1,ds2,...]
有更好的解决方法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。