将字典转换为数据框,键作为列名,键的值作为数据框的列值
Converting dictionary to dataframe with key as column names and value of key as column values of the dataframe
将嵌套字典转换为数据框,字典 keys 作为 column names and values对应于这些键作为数据帧的列值。
我是 python 的新手,尝试了几种方法但都失败了,请帮忙。
dict= {sheet1:{col1:[a,b,c,d,e],col2:[p,q,r,s,t],col3:[l,m,n,o]},col4:[e,b,w,t,b]
sheet2:{col1:[r,w,y,g,r], col2:[q,y,f,w], col3:[w,g,4,2,d]}
output:
col1 col2 col3 col4
a p l e
b q m b
c r n w
d s o t
e t nan b
r q w nan
w y g nan
y f 4 nan
g w 2 nan
r nan d nan
您可以通过从嵌套字典创建多个数据框并使用 pd.concat
连接它们来实现此目的。例如:
>>> data = {
... 'sheet1': {'col1': [1, 2, 3, 4], 'col2': [5, 6, 7, 8]},
... 'sheet2': {'col1': [11, 12, 13, 14], 'col2': [15, 16, 17, 18]},
... }
>>> df = pd.concat([pd.DataFrame(d) for d in data.values()], ignore_index=True)
>>> df
col1 col2
0 1 5
1 2 6
2 3 7
3 4 8
4 11 15
5 12 16
6 13 17
7 14 18
您可以从给定的字典创建嵌套数据帧,然后将它们相互连接起来。
这是示例词典,
sample_dict= {'sheet1':{'col1':['a','b','c','d','e'],'col2':['p','q','r','s','t'],'col3':['l','m','n','o']},
'sheet2':{'col1':['r','w','y','g','r'], 'col2':['q','y','f','w'], 'col3':['w','g',4,2,'d'], 'col4':['e','b','w','t','b'] }}
然后您可以为 sample_dict,
中的每个键创建数据帧列表
df_list=[]
for key in sample_dict:
df_list.append(pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in sample_dict[key].items()])))
最后连接存储在 df_list,
中的数据帧
final_df=pd.concat(df_list)
将嵌套字典转换为数据框,字典 keys 作为 column names and values对应于这些键作为数据帧的列值。
我是 python 的新手,尝试了几种方法但都失败了,请帮忙。
dict= {sheet1:{col1:[a,b,c,d,e],col2:[p,q,r,s,t],col3:[l,m,n,o]},col4:[e,b,w,t,b]
sheet2:{col1:[r,w,y,g,r], col2:[q,y,f,w], col3:[w,g,4,2,d]}
output:
col1 col2 col3 col4
a p l e
b q m b
c r n w
d s o t
e t nan b
r q w nan
w y g nan
y f 4 nan
g w 2 nan
r nan d nan
您可以通过从嵌套字典创建多个数据框并使用 pd.concat
连接它们来实现此目的。例如:
>>> data = {
... 'sheet1': {'col1': [1, 2, 3, 4], 'col2': [5, 6, 7, 8]},
... 'sheet2': {'col1': [11, 12, 13, 14], 'col2': [15, 16, 17, 18]},
... }
>>> df = pd.concat([pd.DataFrame(d) for d in data.values()], ignore_index=True)
>>> df
col1 col2
0 1 5
1 2 6
2 3 7
3 4 8
4 11 15
5 12 16
6 13 17
7 14 18
您可以从给定的字典创建嵌套数据帧,然后将它们相互连接起来。
这是示例词典,
sample_dict= {'sheet1':{'col1':['a','b','c','d','e'],'col2':['p','q','r','s','t'],'col3':['l','m','n','o']},
'sheet2':{'col1':['r','w','y','g','r'], 'col2':['q','y','f','w'], 'col3':['w','g',4,2,'d'], 'col4':['e','b','w','t','b'] }}
然后您可以为 sample_dict,
中的每个键创建数据帧列表df_list=[]
for key in sample_dict:
df_list.append(pd.DataFrame(dict([ (k,pd.Series(v)) for k,v in sample_dict[key].items()])))
最后连接存储在 df_list,
中的数据帧final_df=pd.concat(df_list)