gpt4 book ai didi

python - 包含 pandas 数据框的数组和矩阵的字典列表

转载 作者:太空宇宙 更新时间:2023-11-03 15:19:36 24 4
gpt4 key购买 nike

我有一个字典列表a,如下所示:

a = {}
a[0]={}
a[0]['first_variable']=np.array([1,2,3,4,5])
a[0]['second_variable']=np.array([[1,2],[3,4],[5,6],[7,8],[9,10]])
a[1]={}
a[1]['first_variable']=np.array([1,2,3,4,5])
a[1]['second_variable']=np.array([[1,2],[3,4],[5,6],[7,8],[9,10]])

正如您所看到的,一些键包含一个数组,其他键包含一个矩阵......

鉴于这本字典,我想创建一个如下所示的数据框

a_dataframe = pd.DataFrame(columns=['dictionary','first_variable','second_variable_col1','second_variable_col2'])
a_dataframe['dictionary'] = np.array([1,1,1,1,1,2,2,2,2,2])
a_dataframe['first_variable']=np.array([1,2,3,4,5,1,2,3,4,5])
a_dataframe['second_variable_col1']=np.array([1,3,5,7,9,1,3,5,7,9])
a_dataframe['second_variable_col2']=np.array([2,4,6,8,10,2,4,6,8,10])

这应该以自动方式完成...即从字典键中获取名称,如果是矩阵,则添加 col1、col2 等...我还应该在 pandas 数据框中引入一个列(可能在第一个位置),它告诉我原始字典的索引。在这种情况下,该列称为字典

你能帮我吗?谢谢

最佳答案

dfs = []
for c, d in a.items():
#iterate the outer dict and reconstruct the records to handle array and matrix
temp_dict = ({'{}_col{}'.format(k,i):e for k,v in d.items()
for i,e in enumerate(np.asarray(v).T.reshape(-1,5))})
#append the dict indicator
temp_dict['dictionary'] = c+1
#append the df to the df list
dfs.append(pd.DataFrame(temp_dict))
df = pd.concat(dfs,axis=0,ignore_index=True)
print(df)

dictionary first_variable_col0 second_variable_col0 second_variable_col1
0 1 1 1 2
1 1 2 3 4
2 1 3 5 6
3 1 4 7 8
4 1 5 9 10
5 2 1 1 2
6 2 2 3 4
7 2 3 5 6
8 2 4 7 8
9 2 5 9 10

关于python - 包含 pandas 数据框的数组和矩阵的字典列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43635629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com