當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python Pandas interval_range方法用法及代碼示例


Pandas interval_range(~) 方法返回固定頻率的 IntervalIndex

注意

如果您正在處理與時間相關的數據,請選擇使用 period_range(~)

參數

1.start | numericdatetime-like | optional

範圍的下限。默認情況下,start=None

2. end | numericdatetime-like | optional

範圍的上限。默認情況下,end=None

3. periods | int | optional

所需的日期數量。默認情況下,periods=True

警告

在上述三個參數中,必須指定兩個 - 不能少,不能多。

4. freq | stringDateOffset | optional

間隔的長度。默認情況下,如果 start 是數字,則為 freq=1 ,否則為 freq="D" (長度為一天)。

5. name | string | optional

分配給結果 IntervalIndex 的名稱。默認情況下,name=None

6. closed | string | optional

是否使邊界包含/排除:

說明

"left"

  • 包含左端點。

  • 右端點是獨占的。

"right"

  • 左端點是獨占的。

  • 右端點包含在內。

"both"

兩個端點都包含在內。

"neither"

兩個端點都是互斥的。

默認情況下,closed="right"

返回值

一個 IntervalIndex

例子

基本用法

數字

要使用簡單的數字創建間隔範圍:

pd.interval_range(start=5, end=8)



IntervalIndex([(5, 6], (6, 7], (7, 8]],
              closed='right',
              dtype='interval[int64]')

這裏,返回的IntervalIndex包含3個間隔。請注意, (5,6] 僅表示 5 < a <=6

日期

要創建從 2020-12-25(包含)到 2020-12-28(不包含)的日期間隔序列:

pd.interval_range(start=pd.Timestamp("2020-12-25"), end=pd.Timestamp("2020-12-28"))



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               dtype='interval[datetime64[ns]]')

默認的step-size(頻率)是一天,因此這就是我們在輸出中看到freq="D"的原因。

指定期間

要創建 3 個數字間隔的序列:

pd.interval_range(start=5, periods=3)



IntervalIndex([(5, 6], (6, 7], (7, 8]],
              closed='right',
              dtype='interval[int64]')

要從2020-12-25(含)創建 3 個日期間隔的序列:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3)



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               dtype='interval[datetime64[ns]]')

指定頻率

對於數字間隔,默認為 freq=1 ,這意味著間隔寬度為 1

pd.interval_range(start=5, periods=3)   # freq=1



IntervalIndex([(5, 6], (6, 7], (7, 8]],
              closed='right',
              dtype='interval[int64]')

將間隔寬度設置為 2:

pd.interval_range(start=5, periods=3, freq=2)



IntervalIndex([(5, 7], (7, 9], (9, 11]],
              closed='right',
              dtype='interval[int64]')

對於時間序列,默認為 freq="D" ,這意味著間隔寬度為一天:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3)   # freq="D"



IntervalIndex([(2020-12-25, 2020-12-26], (2020-12-26, 2020-12-27], (2020-12-27, 2020-12-28]],
              closed='right',
              dtype='interval[datetime64[ns]]')

要將間隔寬度設置為 2 天:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, freq="2D")



IntervalIndex([(2020-12-25, 2020-12-27],
               (2020-12-27, 2020-12-29],
               (2020-12-29, 2020-12-31]],
               closed='right',
               dtype='interval[datetime64[ns]]')

指定名稱

為生成的 IntervalIndex 命名:

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, name="My Dates")



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               name='My Dates',
               dtype='interval[datetime64[ns]]')

請注意我們如何將 name="My Dates" 編碼到 IntervalIndex 中。

指定關閉

默認情況下,下限不包括在內,上限包括在內 ( closed="right" ):

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3)   # closed="right"



IntervalIndex([(2020-12-25, 2020-12-26],
               (2020-12-26, 2020-12-27],
               (2020-12-27, 2020-12-28]],
               closed='right',
               dtype='interval[datetime64[ns]]')

要使下限包含在內且上限不包含,請設置 closed="left"

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, closed="left")



IntervalIndex([[2020-12-25, 2020-12-26),
               [2020-12-26, 2020-12-27),
               [2020-12-27, 2020-12-28)],
               closed='left',
               dtype='interval[datetime64[ns]]')

要使兩個邊界都包含在內,請設置 closed="both"

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, closed="both")



IntervalIndex([[2020-12-25, 2020-12-26],
               [2020-12-26, 2020-12-27],
               [2020-12-27, 2020-12-28]],
               closed='both',
               dtype='interval[datetime64[ns]]')

要使兩個邊界互斥,請設置 closed="neither"

pd.interval_range(start=pd.Timestamp("2020-12-25"), periods=3, closed="neither")



IntervalIndex([(2020-12-25, 2020-12-26),
               (2020-12-26, 2020-12-27),
               (2020-12-27, 2020-12-28)],
               closed='neither',
               dtype='interval[datetime64[ns]]')

使用IntervalIndex初始化DataFrame

IntervalIndex 可以用作DataFrame的索引:

idx = pd.interval_range(start=5, end=7)
pd.DataFrame({"A":[3,4],"B":[5,6]}, index=idx)



        A  B
(5, 6]  3  5
(6, 7]  4  6

相關用法


注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas | interval_range method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。