Цикл или итерация для обновления или создания словаря с DataFrame в результате итерации - PullRequest
0 голосов
/ 29 ноября 2018

Я пытаюсь создать словарь, который берет ключи из списка и для значений несколько фреймов данных.В приведенном ниже примере 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})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...