我正在尝试将数据帧转换为字典(因为按键过滤它们会更快) 我目前正在使用
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的索引作为键,并将行的索引作为具有单个键上多个值的值
答案 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万行