Как манипулировать словарем с помощью ключей-кортежей для вывода панд данных - PullRequest
0 голосов
/ 03 мая 2018

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

{('a','1'):2,
 ('a','2'):1,
 ('b','1'):3,
 ('b','2'):2}

Я хочу получить результат для фрейма данных, который получает элемент с наибольшим значением для первого ключа (в данном случае 'a', 'b'), и создать фрейм данных из ключа кортежа.

key    value
'a'      '1'
'b'      '1'

Как я могу сделать это в Python?

1 Ответ

0 голосов
/ 04 мая 2018

Попробуйте следующее:

# let d is your dictionary
df = pd.DataFrame(d.keys(),columns=['key','value'])
df['freq'] = pd.DataFrame(d.values())
df['freq'] = pd.DataFrame(list(d.values()))
df = df.loc[df[['key','freq']].groupby('key').idxmax().freq]
       .drop('freq',axis=1)

Out[]:
    key value
2   a   1
0   b   1

Сбросьте индекс, если хотите:

df = df.reset_index(drop=True)

Out[]:
    key value
0   a   1
1   b   1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...