Понимание словаря Python с помощью Pandas

Я пытаюсь создать словарь из двух столбцов DataFrame (DF)

mydict={x :y for x in df['Names'] for y in df['Births']}

Но все значения одинаковы (последнее значение в столбце)!

{'Bob': 973, 'Jessica': 973, 'John': 973, 'Mary': 973, 'Mel': 973}

Я проверил столбец, и у него есть много других значений, что я делаю не так?

2 ответа

Решение

Я думаю, что Абду ударил ногтем по голове dict(zip(dff['Names'], dff['Births'])), но если вы хотите сделать это с пониманием слова, вы можете сделать это:

    In [1]: import pandas as pd

    In [2]: df = pd.DataFrame(
       ...: [{'Births': 971, 'Names': 'Bob'},
       ...:  {'Births': 972, 'Names': 'Jessica'},
       ...:  {'Births': 973, 'Names': 'John'},
       ...:  {'Births': 974, 'Names': 'Mary'},
       ...:  {'Births': 975, 'Names': 'Mel'}])

    In [3]: {d['Names']: d['Births'] for d in df.to_dict(orient='records')}
    Out[3]: {'Bob': 971, 'Jessica': 972, 'John': 973, 'Mary': 974, 'Mel': 975}

попробуйте my_dict = {row.Names:row.Births для (index,row) в df.iterows()}

Другие вопросы по тегам