import numpy as np
import pandas as pd
head tail empty describe
DataFrame from historal rates data
= pd.read_csv('rates.csv', parse_dates=['Time'])
df = df['Time']
df.index df.head()
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 |
2) df.tail(
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
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 |
# Accessing single columns as attributes or using square brackets
df.USD
Time
2024-01-17 1.0877
2024-01-16 1.0882
2024-01-15 1.0945
2024-01-12 1.0942
2024-01-11 1.0987
...
2023-10-26 1.0540
2023-10-25 1.0576
2023-10-24 1.0632
2023-10-23 1.0597
2023-10-20 1.0591
Name: USD, Length: 61, dtype: float64
# Subsets of columns
'USD', 'CHF']] df[[
USD | CHF | |
---|---|---|
Time | ||
2024-01-17 | 1.0877 | 0.9406 |
2024-01-16 | 1.0882 | 0.9361 |
2024-01-15 | 1.0945 | 0.9351 |
2024-01-12 | 1.0942 | 0.9350 |
2024-01-11 | 1.0987 | 0.9338 |
... | ... | ... |
2023-10-26 | 1.0540 | 0.9466 |
2023-10-25 | 1.0576 | 0.9474 |
2023-10-24 | 1.0632 | 0.9501 |
2023-10-23 | 1.0597 | 0.9461 |
2023-10-20 | 1.0591 | 0.9442 |
61 rows × 2 columns
'USD', 'CHF']].head() df[[
USD | CHF | |
---|---|---|
Time | ||
2024-01-17 | 1.0877 | 0.9406 |
2024-01-16 | 1.0882 | 0.9361 |
2024-01-15 | 1.0945 | 0.9351 |
2024-01-12 | 1.0942 | 0.9350 |
2024-01-11 | 1.0987 | 0.9338 |
'USD', 'CHF']].head(3) df[[
USD | CHF | |
---|---|---|
Time | ||
2024-01-17 | 1.0877 | 0.9406 |
2024-01-16 | 1.0882 | 0.9361 |
2024-01-15 | 1.0945 | 0.9351 |
'USD', 'CHF']].tail(4) df[[
USD | CHF | |
---|---|---|
Time | ||
2023-10-25 | 1.0576 | 0.9474 |
2023-10-24 | 1.0632 | 0.9501 |
2023-10-23 | 1.0597 | 0.9461 |
2023-10-20 | 1.0591 | 0.9442 |
4) df.tail(
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
Time | ||||||||
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 |
df.empty
False
= pd.DataFrame([])
empty_df empty_df.empty
True
# DataFrame with column names can be empty
= pd.DataFrame([], columns=['colA', 'colB', 'colC'])
empty_df2 empty_df2
colA | colB | colC |
---|
empty_df2.empty
True
df.describe()
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
count | 61 | 61.000000 | 61.000000 | 6.100000e+01 | 61.000000 | 61.000000 | 61.000000 | 61.000000 |
mean | 2023-12-02 17:42:17.704918016 | 1.083367 | 159.357377 | 1.955800e+00 | 24.536525 | 7.458064 | 0.866149 | 0.949808 |
min | 2023-10-20 00:00:00 | 1.053700 | 154.800000 | 1.955800e+00 | 24.260000 | 7.452900 | 0.855800 | 0.926000 |
25% | 2023-11-10 00:00:00 | 1.070200 | 157.630000 | 1.955800e+00 | 24.420000 | 7.455900 | 0.860780 | 0.942900 |
50% | 2023-12-01 00:00:00 | 1.087700 | 159.170000 | 1.955800e+00 | 24.543000 | 7.456900 | 0.866710 | 0.947800 |
75% | 2023-12-22 00:00:00 | 1.094600 | 161.190000 | 1.955800e+00 | 24.659000 | 7.459000 | 0.871530 | 0.962800 |
max | 2024-01-17 00:00:00 | 1.111400 | 164.050000 | 1.955800e+00 | 24.755000 | 7.464800 | 0.876300 | 0.967300 |
std | NaN | 0.014814 | 2.371918 | 2.238873e-16 | 0.131402 | 0.003083 | 0.005824 | 0.012294 |