Прикрепите построение dict из информационного кадра с pandas - PullRequest
1 голос
/ 21 января 2020

def dict_trunkated(collection, df):
    dict_all = {}
    #collection = shorten_string(collection)

    collection = list(collection)
    for element in collection: 
        #counter_el += 1
        #print("num dupless", counter_el)
        dict_all[element] = {"id_ja" : None, "id_nein" : None ,"ZUW_ja": set(), "ZUW_nein": set(), "missing_ZUW_ja" : set(), "missing_ZUW_nein" : set()}

    for rownum in range(0,df.shape[0]):
        #counter_zuw += 1
        #print("num zuwlist", counter_zuw)
        #print(df.iloc[rownum][6][-5:])
        if "_Ja" in df.iloc[rownum][6][-5:]:
            dict_all[df.iloc[rownum][6][0:-3]]["id_ja"] = df.iloc[rownum][5]
            dict_all[df.iloc[rownum][6][0:-3]]["ZUW_ja"].add(df.iloc[rownum][1])

        if "_Nein" in df.iloc[rownum][6][-5:]:
            dict_all[df.iloc[rownum][6][0:-5]]["id_nein"] = df.iloc[rownum][5]
            dict_all[df.iloc[rownum][6][0:-5]]["ZUW_nein"].add(df.iloc[rownum][1])
    return dict_all

В настоящее время требуется более трех минут, чтобы проанализировать мой фрейм данных и поместить всю информацию, которая мне нужна, в мой анализ.

Мне интересно, лучше ли менять массивы, которые я использую ранее, на серию Pandas (внутри функций до того, где я готовлю коллекцию, которая используется в этой функции)?

А есть ли способы закрепить мои петли? Я знаю эти лайнеры, но не могу понять, как использовать их в моем контексте ... Особенно моя вторая лопасть кажется очень неэффективной.

Вдохнови меня; -)

My DataFrame Input looks like: *(Sorry don't know how to present it in a better way)*

Relation ID(INT that becomes `ZUW_ja` or `ZUW_no`) ; TERM-ID (INT that becomes `id_ja` or `id_no`) ; 
NAME (str which gets stemmed and is used as key for the dict) 

Мой вывод dict должен выглядеть следующим образом:

dict_all[key] = {'id_ja': 6176144, 'id_nein': 6176145, 'ZUW_ja': {3842, 1283}, 'ZUW_nein': {3842, 3300753}, 'missing_ZUW_ja': set(), 'missing_ZUW_nein': {3300610, }}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...