head tail empty describe

import numpy as np
import pandas as pd

DataFrame from historal rates data

df = pd.read_csv('rates.csv', parse_dates=['Time'])
df.index = df['Time']
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
df.tail(2)
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
df[['USD', 'CHF']]
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

df[['USD', 'CHF']].head()
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
df[['USD', 'CHF']].head(3)
USD CHF
Time
2024-01-17 1.0877 0.9406
2024-01-16 1.0882 0.9361
2024-01-15 1.0945 0.9351
df[['USD', 'CHF']].tail(4)
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
df.tail(4)
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
empty_df = pd.DataFrame([])
empty_df.empty
True
# DataFrame with column names can be empty
empty_df2 = pd.DataFrame([], columns=['colA', 'colB', 'colC'])
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