Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- In [171]: A = np.array([1.1, 1.1, 3.3, 3.3, 5.5, 6.6])
- In [172]: B = np.array([111, 222, 222, 333, 333, 777])
- In [173]: C = randint(10, 99, 6)
- In [174]: df = pd.DataFrame(zip(A, B, C), columns=['A', 'B', 'C'])
- In [175]: df.set_index(['A', 'B'], inplace=True)
- In [176]: df
- Out[176]:
- C
- A B
- 1.1 111 20
- 222 31
- 3.3 222 24
- 333 65
- 5.5 333 22
- 6.6 777 74
- In [536]: result_df = df.loc[(df.index.get_level_values('A') > 1.7) & (df.index.get_level_values('B') < 666)]
- In [537]: result_df
- Out[537]:
- C
- A B
- 3.3 222 43
- 333 59
- 5.5 333 56
- In [538]: result_df.index.get_level_values('A')
- Out[538]: Index([3.3, 3.3, 5.5], dtype=object)
- In [558]: df = store.select(STORE_EXTENT_BURSTS_DF_KEY)
- In [559]: len(df)
- Out[559]: 12857
- In [560]: df.sort(inplace=True)
- In [561]: df_without_index = df.reset_index()
- In [562]: %timeit df.loc[(df.index.get_level_values('END_TIME') > 358200) & (df.index.get_level_values('START_TIME') < 361680)]
- 1000 loops, best of 3: 562 ยตs per loop
- In [563]: %timeit df_without_index[(df_without_index.END_TIME > 358200) & (df_without_index.START_TIME < 361680)]
- 1000 loops, best of 3: 507 ยตs per loop
- In [12]: df
- Out[12]:
- C
- A B
- 1.1 111 68
- 222 40
- 3.3 222 20
- 333 11
- 5.5 333 80
- 6.6 777 51
- In [13]: df.query('3.3 <= A <= 6.6') # for closed interval
- Out[13]:
- C
- A B
- 3.3 222 20
- 333 11
- 5.5 333 80
- 6.6 777 51
- In [14]: df.query('3.3 < A < 6.6') # for open interval
- Out[14]:
- C
- A B
- 5.5 333 80
- In [15]: df.query('2.0 <= A <= 4.0')
- Out[15]:
- C
- A B
- 3.3 222 20
- 333 11
- In [16]: df.query('111 <= B <= 500')
- Out[16]:
- C
- A B
- 1.1 111 68
- 222 40
- 3.3 222 20
- 333 11
- 5.5 333 80
- In [17]: df.query('0 < A < 4 and 150 < B < 400')
- Out[17]:
- C
- A B
- 1.1 222 40
- 3.3 222 20
- 333 11
- In [11]: df
- Out[11]:
- C
- A B
- 1.1 111 81
- 222 45
- 3.3 222 98
- 333 13
- 5.5 333 89
- 6.6 777 98
- In [12]: x = df.reset_index()
- In [13]: x.loc[(x.A>=3.3)&(x.A<=6.6)]
- Out[13]:
- A B C
- 2 3.3 222 98
- 3 3.3 333 13
- 4 5.5 333 89
- 5 6.6 777 98
- In [14]: x.loc[(x.A>=2.0)&(x.A<=4.0)]
- Out[14]:
- A B C
- 2 3.3 222 98
- 3 3.3 333 13
- In [15]: x.loc[(x.B>=111.0)&(x.B<=500.0)]
- Out[15]:
- A B C
- 0 1.1 111 81
- 1 1.1 222 45
- 2 3.3 222 98
- 3 3.3 333 13
- 4 5.5 333 89
- In [16]: x.loc[(x.B>=111.0)&(x.B<=500.0)].set_index(['A','B'])
- Out[16]:
- C
- A B
- 1.1 111 81
- 222 45
- 3.3 222 98
- 333 13
- 5.5 333 89
- In [5]: x.loc[(x.B>=111.0)&(x.B<=500.0)].set_index(['A','B']).index
- Out[5]:
- MultiIndex
- [(1.1, 111), (1.1, 222), (3.3, 222), (3.3, 333), (5.5, 333)]
Add Comment
Please, Sign In to add comment