Мне нужно реализовать многопоточность в задании Python.
У меня есть словарь, и каждый ключ в этом словаре (из примерно 40) представляет собой временную метку pandas dataframe.Большинство фреймов данных имеют более 100 000 строк.Их метками времени являются строки в формате "%Y-%m-%d %H:%M:%S"
.
Для преобразования строк с метками времени я использую следующую функцию:
def to_dt(df):
df['timestamp'] = df['timestamp'].map(lambda n: pd.to_datetime(n, format='%Y-%m-%d %H:%M:%S'))
return df
Поэтому я бы хотел поместить каждый процесс to_dt(df)
в отдельныйнить.Как я могу это сделать?
Чтобы упростить, давайте рассмотрим, у нас есть следующая установка:
def to_dt(df):
df['timestamp'] = df['timestamp'].map(lambda n: pd.to_datetime(n, format='%Y-%m-%d %H:%M:%S'))
return df
# empty dictionary
d_test = {}
# dataframe with single string timestamp column
df = pd.DataFrame(columns=['st_dt'])
# populate dataframe with 1000 timestamp rows
for i in range(1000):
df.loc[len(df)] = ['2018-10-02 10:00:00']
# add 20 instances of the dataframe to the dictionary with keys in format "a0" to 'a19'
for i in range(20):
d_test['a'+str(i)] = df
Теперь, как мы можем сделать каждую итерацию
for i in range(20):
to_dt(d_test['a'+str(i)])
запускать в отдельном потоке?