首页 > 解决方案 > 将元组作为键和值作为数组的字典转换为熊猫数据框

问题描述

我有以下字典:

dict = {(0, 6): array([[1, 2, 3, 0, 1 ,1]]), (0, 9): array([[1, 2, 3, 0, 1, 1] ])}

我想将其转换为如下所示的 pandas 数据框:

钥匙 v1 v2 v3 v4 v5 v6
(0,6) 1 2 3 0 1 1
(0,9) 1 2 3 0 1 1

我不希望键成为索引。

谢谢你的帮助。

标签: arrayspandasdataframedictionarytuples

解决方案


利用:

d =  {(0, 6): np.array([[1, 2, 3, 0, 1 ,1]]), 
      (0, 9): np.array([[1, 2, 3, 0, 1, 1]])}


df = pd.DataFrame.from_dict({k: v[0] for k, v in d.items()}, orient='index')
df = df.rename_axis('Key').rename(columns=lambda x: f'v{x+1}').reset_index()
print (df)
      Key  v1  v2  v3  v4  v5  v6
0  (0, 6)   1   2   3   0   1   1
1  (0, 9)   1   2   3   0   1   1

或者:

df = pd.DataFrame(np.vstack(list(d.values()))).rename(columns=lambda x: f'v{x+1}')
df.insert(0,'Key',list(d.keys()))
print (df)
      Key  v1  v2  v3  v4  v5  v6
0  (0, 6)   1   2   3   0   1   1
1  (0, 9)   1   2   3   0   1   1

推荐阅读