我有一个多重指数,一级指数是一个时间序列,与下面的指数完全相同:
In[168]: rng = pd.date_range('01-01-2000',periods=50,freq='M')
In[169]: long_df = pd.DataFrame(np.random.randn(50,4),index = rng, columns=['bar','baz','foo','zoo'])
In[170]: long_df = long_df.stack()
In[171]: long_df[:10]
Out[171]:
2000-01-31 bar 2.079474
baz -0.569920
foo 1.149012
zoo -0.228926
2000-02-29 bar 0.429502
baz -0.117166
foo 0.956546
zoo -1.483818
2000-03-31 bar -1.137998
baz 1.049849
编辑
我可以用句点来切分它,效果很好:
^{pr2}$但是,当我使用多索引版本时,我正在处理的切片没有得到确认:
In[204]: dfmi
Out[204]:
Last Days to expiry
Date Ticker
1988-12-06 HGF89 1.46894 52
HGF90 1.17100 419
HGG89 1.42100 80
HGH89 1.37344 113
HGH90 1.17450 477
HGK89 1.28750 171
HGK90 1.15900 539
HGN89 1.24550 233
HGN90 1.15900 598
HGU89 1.21750 295
HGU90 1.15900 659
HGZ89 1.18500 386
1988-12-07 HGF89 1.51900 51
HGF90 1.18900 418
HGG89 1.46394 79
HGH89 1.41300 112
HGH90 1.19250 476
HGK89 1.31750 170
HGK90 1.17700 538
HGN89 1.27550 232
HGN90 1.17700 597
HGU89 1.24250 294
HGU90 1.17700 658
HGZ89 1.20300 385
1988-12-08 HGF89 1.58100 50
HGF90 1.18900 417
HGG89 1.50894 78
HGH89 1.43994 111
HGH90 1.19250 475
HGK89 1.32750 169
... ...
2016-07-05 HGK7 2.20500 325
HGM7 2.20900 358
HGN6 2.18150 22
HGN7 2.21000 387
HGQ6 2.18150 55
HGQ7 2.21450 420
HGU6 2.18350 85
HGU7 2.21550 449
HGV6 2.18700 114
HGV7 2.21850 479
HGX6 2.19100 146
HGX7 2.22000 511
HGZ6 2.19250 176
2016-07-06 HGF7 2.16700 205
HGG7 2.17100 233
HGH7 2.17100 266
HGJ7 2.17550 294
HGK7 2.17650 324
HGM7 2.18050 357
HGN6 2.15150 21
HGN7 2.18150 386
HGQ6 2.15150 54
HGQ7 2.18600 419
HGU6 2.15350 84
HGU7 2.18700 448
HGV6 2.15700 113
HGV7 2.19000 478
HGX6 2.16100 145
HGX7 2.19150 510
HGZ6 2.16300 175
[167701 rows x 2 columns]
In[204]: dfmi = dfmi.sort_index()
In[205]: dfmi.loc['2001']
Out[206]:
Last Days to expiry
Date Ticker
1988-12-06 HGF89 1.46894 52
HGF90 1.17100 419
HGG89 1.42100 80
HGH89 1.37344 113
HGH90 1.17450 477
HGK89 1.28750 171
HGK90 1.15900 539
HGN89 1.24550 233
HGN90 1.15900 598
HGU89 1.21750 295
HGU90 1.15900 659
1988-12-07 HGF89 1.51900 51
HGF90 1.18900 418
HGG89 1.46394 79
HGH89 1.41300 112
HGH90 1.19250 476
HGK89 1.31750 170
HGK90 1.17700 538
HGN89 1.27550 232
HGN90 1.17700 597
HGU89 1.24250 294
HGU90 1.17700 658
1988-12-08 HGF89 1.58100 50
HGF90 1.18900 417
HGG89 1.50894 78
HGH89 1.43994 111
HGH90 1.19250 475
HGK89 1.32750 169
HGK90 1.17700 537
HGN89 1.27750 231
... ...
2016-07-05 HGH7 2.19950 267
HGJ7 2.20400 295
HGK7 2.20500 325
HGM7 2.20900 358
HGN6 2.18150 22
HGN7 2.21000 387
HGQ6 2.18150 55
HGQ7 2.21450 420
HGU6 2.18350 85
HGU7 2.21550 449
HGV6 2.18700 114
HGV7 2.21850 479
HGX6 2.19100 146
HGX7 2.22000 511
2016-07-06 HGF7 2.16700 205
HGG7 2.17100 233
HGH7 2.17100 266
HGJ7 2.17550 294
HGK7 2.17650 324
HGM7 2.18050 357
HGN6 2.15150 21
HGN7 2.18150 386
HGQ6 2.15150 54
HGQ7 2.18600 419
HGU6 2.15350 84
HGU7 2.18700 448
HGV6 2.15700 113
HGV7 2.19000 478
HGX6 2.16100 145
HGX7 2.19150 510
[161017 rows x 2 columns]
我注意到龙逖df在类型上有区别(pandas.core.系列.Series)我举了一个例子(熊猫.核心.框架.DataFrame)我使用
正确的方法是什么?在
非常感谢你的建议
您需要添加^{} ,但需要pandas 0.18.1的最新版本:
编辑:
另一个解决方案是从第一级开始使用^{} 查找整数索引的^{} :
^{pr2}$按注释编辑1:
不幸的是,对于列表理解和^{} 如果需要按范围选择,我只有缓慢的解决方案:
相关问题 更多 >
编程相关推荐