在xarray中使用名称索引设置值

2024-09-30 12:31:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我在用xarray在熊猫面板上做了一个MA交叉。在

我使用的数据:

<xarray.dataset>
Dimensions:          (DATE: 3355, DN_NAME: 22670)
Coordinates:
  * DATE             (DATE) datetime64[ns] 2004-05-18 2004-05-19 2004-05-21 ...
  * DN_NAME          (DN_NAME) object '17836' '1TIME' '4SIGHT' 'A-V-I' ...
Data variables:
    Unnamed: 0       (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    EXCHANGE         (DATE, DN_NAME) object nan nan nan nan nan nan nan nan ...
    CODE             (DATE, DN_NAME) object nan nan nan nan nan nan nan nan ...
    DNSECTOR         (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    EXCHANGE_SECTOR  (DATE, DN_NAME) object nan nan nan nan nan nan nan nan ...
    OPEN             (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    HIGH             (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    LOW              (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    CLOSE            (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    VOLUME           (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    OI               (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    DY               (DATE, DN_NAME) object nan nan nan nan nan nan nan nan ...
    EY               (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    VALUE            (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    DEALS            (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    BID              (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    OFFER            (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    CURRENCY         (DATE, DN_NAME) object nan nan nan nan nan nan nan nan ...
    ISSUED_SHARES    (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    FULL_NAME        (DATE, DN_NAME) object nan nan nan nan nan nan nan nan ...
    MA1              (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    MA2              (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    MA3              (DATE, DN_NAME) float64 nan nan nan nan nan nan nan nan ...
    MACROSS          int64 0

熊猫面板的代码:

^{pr2}$

现在,在将面板转换为xarray之后,我在xarray中尝试了以下操作:

ds['MACROSS'] = 0
ds['MACROSS'].sel(MA1 <= ds['MA2'], ds['MA1'].shift(1) > 
ds['MA2'].shift(1)) = 1

由于以下错误,我似乎无法使用sel索引来设置值:

File "<ipython-input-50-af02cd233ed5>", line 17
     ds['MACROSS'].sel(ds['MA1'] > ds['MA2'], ds['MA1'].shift(1) <= 
     ds['MA2'].shift(1)) = 1

^
SyntaxError: can't assign to function call

你知道如何在xarray中选择这个子集,然后按预期设置值吗?在

谢谢!在


Tags: name面板dateshiftobjectexchangedsnan
1条回答
网友
1楼 · 发布于 2024-09-30 12:31:23

Xarray文档有一个关于Assigning Values With Indexing的部分,并特别提供了以下警告:

Do not try to assign values when using any of the indexing methods isel or sel

相反,您需要使用xarray对象来进行索引。像这样:

date_inds = ...some subset of dates with DATE dimension...
name_inds = ...some subset of names with DN_NAME dimension...

ds['MACROSS'][date_inds, name_inds] = 1

相关问题 更多 >

    热门问题