Можете ли вы сослаться на словарь в том виде, как он создается списком? - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь заполнить словарь из pandas кадра данных, используя понимание списка. Моя проблема в том, что мне нужно добавить данные в существующие ключи вместо того, чтобы перезаписывать их.

def Load_Dataframes(cursor):
    negativeitems = Load_NegativeOnhand(cursor)
    materiallog = Load_Materiallog(cursor)
    negativetrans = Join_Dataframes(negativeitems, materiallog) 
    datadict = {}
    datadict = {row[0]:Calculate_Transaction_History(row, datadict) for row in negativetrans[['item-no', 'tran-date', 'tran-time',
                                                                                       'on-hand', 'quantity', 'whse',
                                                                                        'order-no']].values}

def Calculate_Transaction_History(row, datadict):
        if not row[0] in datadict.keys():
            data = Shortage_Data.ShortageData()
            data.addrow(row)
        else:
            data = datadict[row[0]].addtransactions(row)

        return data   

Это заполняет словарь, но параметр datadict является пустым словарем, поэтому оператор if бесполезен. Можно ли сделать это, используя понимание списка, или я должен просто использовать itertuples ()?

начальный фрейм данных:

item-no on-hand quantity
item1   -10     2
item1   -10     4
item1   -10     10
item2   -5      1
item2   -5      1
item3   -3      2

конец цели словарь с ключом: item-no value: class object

keys   data.on-hand  data.quantity
item1  -10           16
item2  -5            2
item3  -3            2

Группировка здесь не будет работать, она работает в этом примере, но не в том, что я полностью пытаюсь выполнить sh.

...