import pandas as pd
Filtering, querying a DataFrame
= pd.read_csv('rates.csv', parse_dates=['Time'])
df = df['Time']
df.index df
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
2024-01-17 | 2024-01-17 | 1.0877 | 160.65 | 1.9558 | 24.755 | 7.4586 | 0.85818 | 0.9406 |
2024-01-16 | 2024-01-16 | 1.0882 | 159.64 | 1.9558 | 24.710 | 7.4582 | 0.86078 | 0.9361 |
2024-01-15 | 2024-01-15 | 1.0945 | 159.67 | 1.9558 | 24.714 | 7.4590 | 0.86075 | 0.9351 |
2024-01-12 | 2024-01-12 | 1.0942 | 159.17 | 1.9558 | 24.689 | 7.4565 | 0.85950 | 0.9350 |
2024-01-11 | 2024-01-11 | 1.0987 | 159.71 | 1.9558 | 24.659 | 7.4568 | 0.86145 | 0.9338 |
... | ... | ... | ... | ... | ... | ... | ... | ... |
2023-10-26 | 2023-10-26 | 1.0540 | 158.48 | 1.9558 | 24.714 | 7.4632 | 0.87170 | 0.9466 |
2023-10-25 | 2023-10-25 | 1.0576 | 158.55 | 1.9558 | 24.693 | 7.4639 | 0.87240 | 0.9474 |
2023-10-24 | 2023-10-24 | 1.0632 | 159.26 | 1.9558 | 24.659 | 7.4648 | 0.87025 | 0.9501 |
2023-10-23 | 2023-10-23 | 1.0597 | 158.91 | 1.9558 | 24.645 | 7.4634 | 0.87153 | 0.9461 |
2023-10-20 | 2023-10-20 | 1.0591 | 158.80 | 1.9558 | 24.704 | 7.4620 | 0.87213 | 0.9442 |
61 rows × 8 columns
'USD > 1.105') df.query(
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
2023-12-28 | 2023-12-28 | 1.1114 | 156.57 | 1.9558 | 24.714 | 7.4545 | 0.8706 | 0.9302 |
2023-12-27 | 2023-12-27 | 1.1065 | 157.81 | 1.9558 | 24.673 | 7.4549 | 0.8683 | 0.9438 |
'USD > 1.105 and JPY < 157') df.query(
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
2023-12-28 | 2023-12-28 | 1.1114 | 156.57 | 1.9558 | 24.714 | 7.4545 | 0.8706 | 0.9302 |
> 1.105 # boolean mask df.USD
Time
2024-01-17 False
2024-01-16 False
2024-01-15 False
2024-01-12 False
2024-01-11 False
...
2023-10-26 False
2023-10-25 False
2023-10-24 False
2023-10-23 False
2023-10-20 False
Name: USD, Length: 61, dtype: bool
> 1.105] df[df.USD
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
2023-12-28 | 2023-12-28 | 1.1114 | 156.57 | 1.9558 | 24.714 | 7.4545 | 0.8706 | 0.9302 |
2023-12-27 | 2023-12-27 | 1.1065 | 157.81 | 1.9558 | 24.673 | 7.4549 | 0.8683 | 0.9438 |
= df.USD > 1.105
mask1 = df.JPY < 157
mask2 & mask2] # mask1 and mask2 df[mask1
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
2023-12-28 | 2023-12-28 | 1.1114 | 156.57 | 1.9558 | 24.714 | 7.4545 | 0.8706 | 0.9302 |
| mask2] # mask1 or mask2 df[mask1
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
2024-01-03 | 2024-01-03 | 1.0919 | 156.16 | 1.9558 | 24.675 | 7.4581 | 0.86470 | 0.9322 |
2024-01-02 | 2024-01-02 | 1.0956 | 155.68 | 1.9558 | 24.687 | 7.4551 | 0.86645 | 0.9305 |
2023-12-29 | 2023-12-29 | 1.1050 | 156.33 | 1.9558 | 24.724 | 7.4529 | 0.86905 | 0.9260 |
2023-12-28 | 2023-12-28 | 1.1114 | 156.57 | 1.9558 | 24.714 | 7.4545 | 0.87060 | 0.9302 |
2023-12-27 | 2023-12-27 | 1.1065 | 157.81 | 1.9558 | 24.673 | 7.4549 | 0.86830 | 0.9438 |
2023-12-22 | 2023-12-22 | 1.1023 | 156.66 | 1.9558 | 24.589 | 7.4560 | 0.86660 | 0.9417 |
2023-12-21 | 2023-12-21 | 1.0983 | 156.79 | 1.9558 | 24.481 | 7.4558 | 0.86805 | 0.9432 |
2023-12-18 | 2023-12-18 | 1.0918 | 155.95 | 1.9558 | 24.543 | 7.4549 | 0.86263 | 0.9480 |
2023-12-15 | 2023-12-15 | 1.0946 | 155.15 | 1.9558 | 24.477 | 7.4556 | 0.85833 | 0.9488 |
2023-12-14 | 2023-12-14 | 1.0919 | 154.80 | 1.9558 | 24.408 | 7.4566 | 0.85955 | 0.9490 |
2023-12-12 | 2023-12-12 | 1.0804 | 156.84 | 1.9558 | 24.420 | 7.4569 | 0.85928 | 0.9443 |
2023-12-08 | 2023-12-08 | 1.0777 | 155.53 | 1.9558 | 24.354 | 7.4558 | 0.85690 | 0.9438 |
2023-12-07 | 2023-12-07 | 1.0771 | 156.18 | 1.9558 | 24.356 | 7.4551 | 0.85750 | 0.9446 |