-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathdf2npz.py
32 lines (24 loc) · 1.11 KB
/
df2npz.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import os
import pandas as pd
import numpy as np
def convert_to_1T_bars(df):
# Конвертация timestamp из UNIX в datetime
df['timestamp'] = pd.to_datetime(df['timestamp'], unit='ms')
# Установка timestamp как индекса DataFrame
df.set_index('timestamp', inplace=True)
# Группировка данных по 5-секундным интервалам
resampled_df = df.resample('1T').agg({
'open': 'first',
'high': 'max',
'low': 'min',
'close': 'last',
'volume': 'sum'
})
# Переименование столбцов
resampled_df.columns = ['open', 'high', 'low', 'close', 'volume']
# Заполнение пропущенных значений для 'open', 'high', 'low', 'close' методом ffill
resampled_df[['open', 'high', 'low', 'close']] = resampled_df[['open', 'high', 'low', 'close']].ffill()
# Замена возможных NaN в 'volume' на 0
resampled_df['volume'].fillna(0, inplace=True)
print(f"Данные успешно загружен!")
return resampled_df