我想把熊猫面板换成xarray.数据集在
我有一个数据集创建的字典和数据帧。每个数据帧包含一只股票的数据。数据帧行是交易日期,列是价格和指标。样本代码:
import pandas as pd
import xarray as xr
panel_dict = {}
panel_dict['AAPL'] = pd.DataFrame({'Open': [100, 105], 'Close': [104, 108],
'SMA200':[102, 110], 'RSI2': [11 , 14]},
index=['2017-09-01', '2017-09-02'])
panel_dict['AMZN'] = pd.DataFrame({'Open': [200, 180], 'Close': [190, 170],
'SMA200':[190, 190], 'RSI2': [11 , 15]},
index=['2017-09-01', '2017-09-02'])
panel_dict['AGN'] = pd.DataFrame({'Open': [300, 310], 'Close': [300, 310],
'SMA200':[250, 250], 'RSI2': [5 , 15]},
index=['2017-09-01', '2017-09-02'])
ds_full = xr.Dataset(panel_dict)
print(ds_full)
# selecting one day works
ds = ds_full.sel(dim_0 = '2017-09-02')
print(ds)
# filtering does not work
c = ds[ds['Close']>ds['SMA200']]
c = c[c['RSI2'] < 12.0 ]
c = c.sort_values(by = 'RSI2', ascending=True)
数据集ds_full看起来像:
^{pr2}$选择ds=ds的1天数据_完整.sel(dim_0='2017-09-02')效果不错:
<xarray.Dataset>
Dimensions: (dim_1: 4)
Coordinates:
dim_0 <U10 '2017-09-02'
* dim_1 (dim_1) object 'Close' 'Open' 'RSI2' 'SMA200'
Data variables:
AAPL (dim_1) int64 108 105 14 110
AMZN (dim_1) int64 170 180 15 190
AGN (dim_1) int64 310 310 15 250
但如何过滤某些附加条件,如“Close”>;“SMA200”或“RSI2”<;12?如何按“RSI2”列对结果排序?在
在原始代码中使用pandas.panel是这样的:
c = ds[ds['Close']>ds['SMA200']]
c = c[c['RSI2'] < 12.0 ]
c = c.sort_values(by = 'RSI2', ascending=True)
目前没有回答
相关问题 更多 >
编程相关推荐