我有这样的一个嵌套列表的字典
{A:
[(1,1.5),(2,1.3),(3,1.5)],
B:
[(1,3.4),(3,2.5)]
}。
想达到这样的形式转化:字典的键转化为dataframe的列标签,字典的值中的每个元组的第一个数为dataframe的索引,第二个数为dataframe的值,有空缺的用NaN代替。
最后的效果是这样:
A B
1 1.5 3.4
2 1.3 NaN
3 1.5 2.5
在网上找了一些代码,但是结果都不是自己想要的形式,谢谢!
可以将字典元素拆分为多个dateframe,再合并,代码可这样写:
import pandas as pd
import numpy as np
d={'A':[(1,1.5),(2,1.3),(3,1.5)],'B':[(1,3.4),(3,2.5)]}
df0=pd.DataFrame.from_records(d['A'],columns=['index','A'])
df1=pd.DataFrame.from_records(d['B'],columns=['index','B'])
df = pd.merge(df0,df1,on='index',how='left').set_index('index')
print(df)
如有帮助,请点采纳。
这其实就是一个处理字典的过程。因为pd无法读取长度不一样的字典。
应该是逐条读取字典,处理,转换成单个df,然后merge起来。