簡體   English   中英

在 Pandas 上切片多索引

[英]Slicing a multiindex on Pandas

我有一個 dataframe 具有以下形式的多索引:

(label, date)

其中label是字符串, date是 DateTimeIndex。

我想按date切片我的 dataframe ; 例如,我想獲取 2007 年到 2009 年之間的所有行:

df.loc[:, '2007':'2009']

似乎第二部分(我放日期的地方)實際上是在對列進行切片。

我如何切date

您可以檢查部分字符串索引

DatetimeIndex 部分字符串索引也適用於具有 MultiIndex 的 DataFrame:

df = pd.DataFrame(np.random.randn(20, 1),
                  columns=['A'],
                  index=pd.MultiIndex.from_product(
                            [['a', 'b'], pd.date_range('20050101', periods=10, freq='10M'),
                             ]))
idx = pd.IndexSlice
df1 = df.loc[idx[:, '2007':'2009'], :]
print (df1)
                     A
a 2007-07-31  0.325027
  2008-05-31 -1.307117
  2009-03-31 -0.556454
b 2007-07-31  1.808920
  2008-05-31  1.245404
  2009-03-31 -0.425046

另一個想法是使用帶有axis=0參數的loc

df1 = df.loc(axis=0)[:, '2007':'2009']
print (df1)
                     A
a 2007-07-31  0.325027
  2008-05-31 -1.307117
  2009-03-31 -0.556454
b 2007-07-31  1.808920
  2008-05-31  1.245404
  2009-03-31 -0.425046

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM