使用索引将Python数据框转换为字典

时间:2020-08-21 20:34:37

标签: python dataframe dictionary

我正在尝试将数据帧转换为字典(因为按键过滤它们会更快) 我目前正在使用

t3 = time()
r={}
for i in df.index.unique():
    r[i]=[]
    r[i].append(df.loc[i].values)
print(round((time()-t3), 1), "s")

这种类型的转换很慢。有替代方法吗?我希望将dataframe的索引作为键,并将行的索引作为具有单个键上多个值的值

2 个答案:

答案 0 :(得分:2)

转置后使用pandas.DataFrame.to_dict可以将索引作为键,将行值作为值:

import pandas as pd

df = pd.DataFrame({'col1': [1, 2], 'col2': ['a', 'b']})
r = df.T.to_dict('list')
print(r)

输出:

{0: [1, 'a'], 1: [2, 'b']}

答案 1 :(得分:0)

我能够使用以下方法将具有多个重复索引的数据框转换为字典:

\

5秒钟的运行时间可运行60万行