gpt4 book ai didi

python - 如何使用日期索引和多级列进行切片 (MultiIndex)

转载 作者:行者123 更新时间:2023-11-28 17:30:29 25 4
gpt4 key购买 nike

我有一个很大的pd.DataFramea,看起来像:

bid        TIT IM Equity HELN SE Equity FHZN SE Equity GLEN LN Equity  
field LAST_PRICE LAST_PRICE LAST_PRICE LAST_PRICE
currency EUR CHF CHF GBp
2013-12-31 NaN NaN NaN 285.954
2014-01-02 0.7085 NaN NaN 283.942
... ... ... ... ...
2014-01-08 0.7990 422.65 511.46 287.875
2014-01-09 0.8095 421.26 514.35 283.165
2014-01-10 0.8135 423.35 514.83 291.487
2014-01-13 0.8065 417.78 515.79 291.670

index 是 dates,我有 MultiIndex 列有 3 个级别(bidfieldcurrency)。

如何切片:

  1. 获取一个 DataFrame,其中包含所有值,其中 currency == CHFdate in ['2014-01-08' : '2014-01-10 ']
  2. 获取一个 DataFrame,其中包含出价以 HEcurrency == CHFEUR 开头的所有值和 ['2014-01-08' : '2014-01-10'] 中的日期

我在文档中找不到它。

最佳答案

您可以使用 xsloc :

print df['2014-01-08' : '2014-01-10'].xs('CHF',level=2,axis=1)

bid HELN SE Equity FHZN SE Equity
field LAST_PRICE LAST_PRICE
2014-01-08 422.65 511.46
2014-01-09 421.26 514.35
2014-01-10 423.35 514.83

#sort multicolumns
df = df.sort_index(axis=1)

he = tuple([s for s in df.columns.levels[0].tolist() if 'HE' in s[:2]])
print he
#('HELN SE Equity',)

print df.loc['2014-01-08' : '2014-01-10', (he, slice(None), ['CHF','EUR'])]

bid HELN SE Equity
field LAST_PRICE
currency CHF
2014-01-08 422.65
2014-01-09 421.26
2014-01-10 423.35

Docs .

关于python - 如何使用日期索引和多级列进行切片 (MultiIndex),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34738675/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com