Я пытаюсь создать словарь, который берет ключи из списка и для значений несколько фреймов данных.В приведенном ниже примере 2 кадра данных (S30
и S60
), но у меня есть 12 и, следовательно, я хотел бы повторить.
У меня есть словарь с начальными кадрами данных, которые я сортирую с помощью некоторых if-функций, затем на основании условий я хочу получить словарь с ключами = для ключей (keys_L_div[:30]
) моего исходного словаря (L_div[pk]['phi']
), а значения - это 2 кадра данных (S30
и S60
в приведенном ниже примере), которые были получены из ассоциированного элемента данных для первого ключа моего исходного словаря.
Мой код работает, проблема в том, что мой новый словарь PS={}
, получает ключи и обработанный фрейм данных S30
, S60
из последней итерации pk в списке ключей, которые я перебирал:
У меня есть ..
keys_L_div=['P1'....'P100']
L_div[pk]['phi']= dictionary
с ключами от P1
до P100
и кадром данных, связанным с каждым P
-Ключом.
Новый словарь должен быть:
PS
с ключами P1
.. до P30
с ассоциированным фреймом данных S30
и S60
(полученным из условия if) для каждого P
-key .... но проблема в том, что в моем словаре PS
есть значения данных S30
и S60
последней итерации pk='P30'
:
Я получаю PS
с ключами от P1
до P30
, но связанные кадры данных (S30
, S60
) - все они с последнего P30
import pandas as pd
S={}
PS={}
for pk in keys_L_div[:30]:
S30 = pd.DataFrame([])
for s in range(len(L_div[pk]['phi'])):
if L_div[pk]['phi'].iloc[s]>0:
if L_div[pk]['phi'].iloc[s]<math.radians(30):
S30=S30.append(L_div[pk].iloc[s])
S['S30']=S30
S60 = pd.DataFrame([])
for s in range(len(L_div[pk]['phi'])):
if L_div[pk]['phi'].iloc[s]>math.radians(30):
if L_div[pk]['phi'].iloc[s]<math.radians(60):
S60=S60.append(L_div[pk].iloc[s])
S['S60']=S60
PS.update({pk:S})