Я не могу понять, почему мой pd dataframe возвращает только последнюю строку - PullRequest
0 голосов
/ 24 апреля 2020

я пытаюсь превратить этот словарь в pd dataframe. У него должно быть 31 ряд, но он только продолжает создавать последний ряд. Вот код ...

for i, n in zip(list(df.actor_id), weighted_avg):
    ziplist = {i:n}
    print(ziplist)

df.actor_id - это столбец строк из фрейма данных, а weighted_avg - список чисел из функции.

pd.DataFrame(ziplist)'''




1 Ответ

0 голосов
/ 24 апреля 2020

У меня есть что-то похожее в моем коде, сначала у меня есть этот фрейм данных

    WIS_REP_ID  DTC_DTC_ID
    2156061     EBS-U0100-87
    2156061     TGW-B1502-81
    2156061     TGW-B1002-13
    2053897     EMS-P203F-00
    2053897     EMS-P2BA7-00
...

Затем у меня есть список целых чисел, которые я хочу добавить в качестве индексов:

weighted_avg = [0,1,2,3,4,5,6,7,8,9]

в этом случае мой df больше, поэтому я использовал метод head, чтобы получить только первые 10 значений, а затем проверяю, печатая только значения моего интересующего ряда:

dfactor_id= (DTCSheet.head(10))
print (dfactor_id["DTC_DTC_ID"])

Применяя то же самое l oop:

for i, n in zip(list(dfactor_id["DTC_DTC_ID"]), weighted_avg):
    ziplist = {i:n}
    print(ziplist)

Вывод будет:

{'EBS-U0100-87': 0}
{'TGW-B1502-81': 1}
{'TGW-B1002-13': 2}
{'EMS-P203F-00': 3}
{'EMS-P2BA7-00': 4}
{'HMIIOM-U1153-71': 5}
{'AUDIO-B1013-21': 6}
{'FCIOM-C1093-11': 7}
{'APM-C1026-68': 8}
{'VMCU-C1013-73': 9}

Однако вы перезаписываете ziplist, поэтому вам просто нужно:

ziplist = []
for i, n in zip(list(dfactor_id["DTC_DTC_ID"]), weighted_avg):
    ziplist.append({i:n})
print(ziplist)
...