如何在Python中合并字典中的所有数据框

12 浏览
0 Comments

如何在Python中合并字典中的所有数据框

我有一个包含许多(超过100个)数据帧的字典dict。每个数据帧都包含两个变量name和\'value_i\'。例如,这个字典中的第一个数据帧dict[1]如下所示:\n

name  value_1
A      1
B      1.1 
C      2

\n类似地,这个字典中的第二个数据帧dict2如下所示:\n

name  value_2
A      1
B      1.1 
D      1.3

\n我想通过共同的变量name合并字典中的所有数据帧。\n预期结果应该如下所示:\n

name  value_1   value_2
A      1         1
B      1.1       1.1
C      2         nan
D     nan           1.3

\n我知道我可以使用pd.merge[dict[i], dict[i-1], how = \'outer\', on = \'name\'多次合并所有数据帧。但这太低效了。\n我尝试了pd.concat(dict.values(), axis = 1, join=\'outer\',但concat不允许我按键变量进行合并。\n有人可以教我如何更高效地做吗?

0
0 Comments

如何在Python中合并字典中的所有数据框

考虑到你在字典中有多个项

d={i : j.set_index('name') for i,j in d.items()}
yourdf=pd.concat(d,axis=1)

如果OP的数据框中的name列具有所有唯一值,则可以正常工作。如果是这种情况,我想知道为什么他们会问关于合并的问题。

在这种情况下,变量名更改为(i,'value_i')。有没有办法保持原始的变量名。

由于在链接101中对合并进行了很好的解释,所以我正在尝试一些不同的方法。

请查看stackoverflow.com/questions/22233488/…以获取更多信息。

0
0 Comments

如何在Python中合并字典中的所有数据框

在数据处理和分析过程中,我们经常需要将多个数据框合并成一个以进行进一步的分析。如果我们有一个字典,其中包含多个数据框,我们可以使用以下方法将它们合并成一个数据框。

首先,让我们看一下给定的数据框。

df1:

  name  value_1
0    A      1.0
1    B      1.1
2    C      2.0

df2:

  name  value_2
0    A      1.0
1    B      1.1
2    D      1.3

我们还有一个字典d,其中包含两个数据框。

d = {1: df1, 2: df2}

要合并字典中的所有数据框,我们需要使用`functools`库中的`reduce`函数。首先,我们需要导入`partial`和`reduce`函数。

from functools import partial, reduce

然后,我们可以定义一个新函数`my_reduce`,它部分地应用了`pd.merge`函数,将`on`参数设置为'name',将`how`参数设置为'outer'。

my_reduce = partial(pd.merge, on='name', how='outer')

接下来,我们可以使用`reduce`函数将字典d中的所有数据框合并。

reduce(my_reduce, d.values())

这将返回一个合并后的数据框,其中包含所有数据框的合并结果。

合并后的结果如下所示:

  name  value_1  value_2
0    A      1.0      1.0
1    B      1.1      1.1
2    C      2.0      NaN
3    D      NaN      1.3

通过使用上述步骤,我们可以轻松地合并字典中的所有数据框,以便进行进一步的分析和处理。

0