import pandas as pd
Accessing columns, operations between columns
= pd.read_csv('rates.csv', parse_dates=['Time'])
df df.head()
Time | USD | JPY | BGN | CZK | DKK | GBP | CHF | |
---|---|---|---|---|---|---|---|---|
0 | 2024-01-17 | 1.0877 | 160.65 | 1.9558 | 24.755 | 7.4586 | 0.85818 | 0.9406 |
1 | 2024-01-16 | 1.0882 | 159.64 | 1.9558 | 24.710 | 7.4582 | 0.86078 | 0.9361 |
2 | 2024-01-15 | 1.0945 | 159.67 | 1.9558 | 24.714 | 7.4590 | 0.86075 | 0.9351 |
3 | 2024-01-12 | 1.0942 | 159.17 | 1.9558 | 24.689 | 7.4565 | 0.85950 | 0.9350 |
4 | 2024-01-11 | 1.0987 | 159.71 | 1.9558 | 24.659 | 7.4568 | 0.86145 | 0.9338 |
2 * df).head() (
TypeError: cannot perform __rmul__ with this index type: DatetimeArray
2 * df[['USD', 'GBP', 'JPY']]
USD | GBP | JPY | |
---|---|---|---|
0 | 2.1754 | 1.71636 | 321.30 |
1 | 2.1764 | 1.72156 | 319.28 |
2 | 2.1890 | 1.72150 | 319.34 |
3 | 2.1884 | 1.71900 | 318.34 |
4 | 2.1974 | 1.72290 | 319.42 |
... | ... | ... | ... |
56 | 2.1080 | 1.74340 | 316.96 |
57 | 2.1152 | 1.74480 | 317.10 |
58 | 2.1264 | 1.74050 | 318.52 |
59 | 2.1194 | 1.74306 | 317.82 |
60 | 2.1182 | 1.74426 | 317.60 |
61 rows × 3 columns
2 * df[['USD', 'GBP', 'JPY']] - df[['USD', 'GBP', 'JPY']]
# all works provided they have same columns
USD | GBP | JPY | |
---|---|---|---|
0 | 1.0877 | 0.85818 | 160.65 |
1 | 1.0882 | 0.86078 | 159.64 |
2 | 1.0945 | 0.86075 | 159.67 |
3 | 1.0942 | 0.85950 | 159.17 |
4 | 1.0987 | 0.86145 | 159.71 |
... | ... | ... | ... |
56 | 1.0540 | 0.87170 | 158.48 |
57 | 1.0576 | 0.87240 | 158.55 |
58 | 1.0632 | 0.87025 | 159.26 |
59 | 1.0597 | 0.87153 | 158.91 |
60 | 1.0591 | 0.87213 | 158.80 |
61 rows × 3 columns
2 * df[['USD', 'GBP', 'JPY']] - df[['USD', 'GBP']]
GBP | JPY | USD | |
---|---|---|---|
0 | 0.85818 | NaN | 1.0877 |
1 | 0.86078 | NaN | 1.0882 |
2 | 0.86075 | NaN | 1.0945 |
3 | 0.85950 | NaN | 1.0942 |
4 | 0.86145 | NaN | 1.0987 |
... | ... | ... | ... |
56 | 0.87170 | NaN | 1.0540 |
57 | 0.87240 | NaN | 1.0576 |
58 | 0.87025 | NaN | 1.0632 |
59 | 0.87153 | NaN | 1.0597 |
60 | 0.87213 | NaN | 1.0591 |
61 rows × 3 columns
= 2 * df[['USD', 'GBP', 'JPY']]
dfA 'USD', 'GBP']]) dfA.sub(df[[
GBP | JPY | USD | |
---|---|---|---|
0 | 0.85818 | NaN | 1.0877 |
1 | 0.86078 | NaN | 1.0882 |
2 | 0.86075 | NaN | 1.0945 |
3 | 0.85950 | NaN | 1.0942 |
4 | 0.86145 | NaN | 1.0987 |
... | ... | ... | ... |
56 | 0.87170 | NaN | 1.0540 |
57 | 0.87240 | NaN | 1.0576 |
58 | 0.87025 | NaN | 1.0632 |
59 | 0.87153 | NaN | 1.0597 |
60 | 0.87213 | NaN | 1.0591 |
61 rows × 3 columns
'USD', 'GBP']]) dfA.mul(df[[
GBP | JPY | USD | |
---|---|---|---|
0 | 1.472946 | NaN | 2.366183 |
1 | 1.481884 | NaN | 2.368358 |
2 | 1.481781 | NaN | 2.395860 |
3 | 1.477481 | NaN | 2.394547 |
4 | 1.484192 | NaN | 2.414283 |
... | ... | ... | ... |
56 | 1.519722 | NaN | 2.221832 |
57 | 1.522164 | NaN | 2.237036 |
58 | 1.514670 | NaN | 2.260788 |
59 | 1.519129 | NaN | 2.245928 |
60 | 1.521221 | NaN | 2.243386 |
61 rows × 3 columns