合并词典列表

2024-09-30 01:29:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我在下面的列表中列出了我想要合并的字典,它们本身包含数据帧

ls = [{'varID': 101, 'varDesc': 'Description of variable 101', 'values': df101},
      {'varID': 102, 'varDesc': 'Description of variable 102', 'values': df102},
      {'varID': 103, 'varDesc': 'Description of variable 103', 'values': df103}]

其中,df101、df102和df103都是由1个数据帧组成的形状,其中日期值作为索引(命名为“refPer”),所有数据帧中的“values”的列名注意:不是所有日期框的大小都一样

我想合并数据帧,并尝试了以下操作:

mergedDF = reduce(lambda x,y: pd.merge(x.get('values'),y.get('values'), how = 'outer', on = 'refPer'), ls)

但是,我得到以下错误:

ValueError: can not merge DataFrame with instance of type <class 'NoneType'>

任何帮助都将不胜感激

先谢谢你


Tags: of数据列表getdescriptionmergevariablels
1条回答
网友
1楼 · 发布于 2024-09-30 01:29:39

可以使用concat连接长度不等的数据帧。您还可以提供参数keys,为要连接的每个数据帧指定一个名称。您将创建一个多索引,但如果不需要,可以删除原始级别:

df = pd.concat([x['values'] for x in ls], axis=1, keys=[x['varID'] for x in ls])
df.columns = df.columns.droplevel(1)  # removes 'original' level

相关问题 更多 >

    热门问题