我有一个〜5,000个数据帧的列表,每个数据帧有〜20列和〜15,000行。所有数据框共享相同的列名,并且我希望优雅地对所有数据框中的所有数据求和,以得出“时间”中的相同值。以下是2个数据帧的示例。关键是要尽可能高效地完成这项工作。
df1 =
time data1 data2
0 100 100
1 100 100
2 100 100
df2 =
time data1 data2
1 100 100
2 100 100
3 100 100
输出=
time data1 data2
0 100 100
1 200 200
2 200 200
3 100 100
答案 0 :(得分:1)
您可以尝试add
,它将添加匹配的索引。在这种情况下,您希望按时进行匹配,因此可以将其设置为索引。
df1.set_index('time').add(df2.set_index('time'), fill_value=0)
data1 data2
time
0 100.0 100.0
1 200.0 200.0
2 200.0 200.0
3 100.0 100.0
填充值设置为0
,因此,如果一个数据帧中有一个值,而另一个数据帧中没有,则将丢失的值设为0。