我想知道,将多个数据帧中的信息聚合到一个新数据帧中最经济的方法是基于匹配一个ID
每个df都有一个“participant\u id”列,每行都有一个不同的participant id。我想最后得到一个df,其中有一个participant\u id列,其他列中每个df的得分。你知道吗
所以我必须需要一个变量来保存参与者ID,循环遍历每一行并提升必要的列。然后,需要将所有相应的分数放在相应的行上,并与正确的参与者ID相关联
我不确定这是否是解决问题的最佳方法?什么时候匹配参与者ID才有意义?早还是晚?你知道吗
输入数据和预期输出:
### three datasets
d1 = {'part_id': ['PartID_1234', 'PartID_5678'], 'col2': [1, 2]}
df1 = pd.DataFrame(data=d1)
d2 = {'part_id': ['PartID_1234', 'PartID_5678'], 'col2': [3, 4]}
df2 = pd.DataFrame(data=d2)
d3 = {'part_id': ['PartID_5678', 'PartID_1234'], 'col2': [5, 6]}
df3 = pd.DataFrame(data=d3)
### aggregated dataset based on ID
import numpy as np
result = pd.DataFrame(np.array([['PartID_1234', 1, 3, 6], ['PartID_5678', 2, 4, 5]]))
我相信您需要^{} 和^{} 来表示每个
DataFrame
,以便在列表理解中按列part_id
进行索引:如果需要索引中的第一列:
可以将
merge
与how='outer'
一起使用,以获得预期的外部联接效果,如:相关问题 更多 >
编程相关推荐