使用值作为键将数据框转换为字典

时间:2020-10-06 18:15:14

标签: python pandas

我有以下数据框

import pandas as pd
d = {'value': ['value1', 'value2', 'value3'], 'key': ['key1', 'key1', 'key2']}
df = pd.DataFrame(data=d)

我需要将其转换为以下形式的字典

{
'key1': ['value1', 'value2'], 
'key2': ['value2']
}

我尝试了df.to_dict(),但是字典中的条目格式不正确。我该怎么办?

1 个答案:

答案 0 :(得分:2)

让我们尝试groupby

df.groupby('key')['value'].agg(list).to_dict()
# run time
# 897 µs ± 50.2 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

或者:

{k:list(x) for k,x in df.groupby('key')['value']}
# run time
# 376 µs ± 14.8 µs per loop (mean ± std. dev. of 7 runs, 100 loops each)

输出:

{'key1': ['value1', 'value2'], 'key2': ['value3']}