Как назначить новую переменную в цикле - присвоение имени переменной данных в панде - PullRequest
0 голосов
/ 13 декабря 2018

У меня есть один временной ряд данных с пандами, который увеличивается на 5 минут.Я хочу назначить имя переменной для каждого 5-минутного приращения.Например:

df_5min = df.resample('5min').first()
df_10min = df.resample('10min').first()
.
.
.
df_7200min = df.resample('7200min').first()

Я бы предпочел хранить их как отдельные имена фреймов данных и хранить их в оперативной памяти, а не хранить фрейм данных и вызывать его позже - простым написанием

for i in range(0,7201,5): df.to_csv('/path/df_' + str(i) + 'min.csv')

Как назначить имя переменной для каждого, чтобы я мог выполнять анализ каждого кадра данных независимо в одном и том же сценарии?

1 Ответ

0 голосов
/ 13 декабря 2018

Вы можете создать dictionary of DataFrames, потому что globals решение не рекомендуется:

#python 3.6+
dfs = {f'{x}min': df.resample(f'{x}min').first() for x in range(5,7201,5)}
#python bellow
dfs = {'{}min'.format(x): df.resample('{}min'.format(x)).first() for x in range(5,7201,5)}

Образец :

rng = pd.date_range('2017-04-03 12:15:10', periods=5, freq='11Min')
df = pd.DataFrame({'a': range(5)}, index=rng)  
print (df)
                     a
2017-04-03 12:15:10  0
2017-04-03 12:26:10  1
2017-04-03 12:37:10  2
2017-04-03 12:48:10  3
2017-04-03 12:59:10  4

dfs = {f'{x}min': df.resample(f'{x}min').first() for x in range(5,16,5)}
print (dfs)
{'5min':                        a
2017-04-03 12:15:00  0.0
2017-04-03 12:20:00  NaN
2017-04-03 12:25:00  1.0
2017-04-03 12:30:00  NaN
2017-04-03 12:35:00  2.0
2017-04-03 12:40:00  NaN
2017-04-03 12:45:00  3.0
2017-04-03 12:50:00  NaN
2017-04-03 12:55:00  4.0, '10min':                      a
2017-04-03 12:10:00  0
2017-04-03 12:20:00  1
2017-04-03 12:30:00  2
2017-04-03 12:40:00  3
2017-04-03 12:50:00  4, '15min':                      a
2017-04-03 12:15:00  0
2017-04-03 12:30:00  2
2017-04-03 12:45:00  3}

А затем выберите по клавишам dict:

print (dfs['5min'])
                       a
2017-04-03 12:15:00  0.0
2017-04-03 12:20:00  NaN
2017-04-03 12:25:00  1.0
2017-04-03 12:30:00  NaN
2017-04-03 12:35:00  2.0
2017-04-03 12:40:00  NaN
2017-04-03 12:45:00  3.0
2017-04-03 12:50:00  NaN
2017-04-03 12:55:00  4.0
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...