Я пытаюсь найти корреляцию между ценами открытия и закрытия 150 криптовалют, используя панд.
Все данные криптовалюты хранятся в своем собственном файле CSV и выглядят примерно так:
|---------------------|------------------|------------------|
| Date | Open | Close |
|---------------------|------------------|------------------|
| 2019-02-01 00:00:00 | 0.00001115 | 0.00001119 |
|---------------------|------------------|------------------|
| 2019-02-01 00:05:00 | 0.00001116 | 0.00001119 |
|---------------------|------------------|------------------|
| . | . | . |
Я бы хотел найти корреляцию между столбцами Close
и Open
каждой криптовалюты.
На данный момент мой код выглядит следующим образом:
temporary_dataframe = pandas.DataFrame()
for csv_path, coin in zip(all_csv_paths, coin_name):
data_file = pandas.read_csv(csv_path)
temporary_dataframe[f"Open_{coin}"] = data_file["Open"]
temporary_dataframe[f"Close_{coin}"] = data_file["Close"]
# Create all_open based on temporary_dataframe data.
corr_file = all_open.corr()
print(corr_file.unstack().sort_values().drop_duplicates())
Вот часть вывода (вывод имеет форму (43661,)
) :
Open_QKC_BTC Close_QKC_BTC 0.996229
Open_TNT_BTC Close_TNT_BTC 0.996312
Open_ETC_BTC Close_ETC_BTC 0.996423
Проблема в том, что я не хочу видеть следующие корреляции:
- между столбцами, начинающимися с
Close_
и Close_
(например, Close_USD_BTC
и Close_ETH_BTC
) - между столбцами, начинающимися с
Open_
и Open_
(например, Open_USD_BTC
и Open_ETH_BTC
) - между одной и той же монетой (например,
Open_USD_BTC
и Close_USD_BTC
) .
Короче говоря, идеальный результат будет выглядеть так:
Open_TNT_BTC Close_QKC_BTC 0.996229
Open_ETH_BTC Close_TNT_BTC 0.996312
Open_ADA_BTC Close_ETC_BTC 0.996423
(PS: я уверен, что это не самое элегантное, чтобы делать то, что я делаю. Если у кого-нибудь есть какие-либо предложения о том, как сделать этот сценарий лучше, я был бы более чем рад их услышать)
Большое спасибо заранее за помощь!