将数据帧结果连接到另一个数据帧

时间:2021-02-23 08:30:40

标签: python pandas concatenation

所以我想尝试将数据帧结果连接到另一个。基本上,我有 for 循环遍历我想放入函数的列表中的每个元素,以及我想连接到另一个数据帧的结果函数。我尝试使用下面的代码,但变量 'final' 没有连接数据帧,只有我的循环的最后一个结果。任何人都可以帮助我吗?谢谢

for i in range(len(gene_result)):
    result = pd.DataFrame()
    test = dummy_fitness(gene_result[i])  # function that resulted into dataframe
    coords = 'gen '+ str(i) +' coords'
    fitness_points = 'gen ' + str(i) + ' points'
    result[coords] = test.pudo_coords # getting the particular column i want
    result[fitness_points] = test.fit # getting the particular column i want
    final = pd.concat([result])

'result' 变量如下所示,每个循环都会不同。我想将变量 'result' 连接到变量 'final'

              gen 0 coords               gen 0 points
0   -6.18360560071739,106.833802730435  8.128732
1   -6.19583084820588,106.850715008823  6.396317
2   -6.17002786742308,106.840075203846  6.050418
3   -6.1956966496,106.822705886667      5.976020
4   -6.18757562077778,106.845673922222  5.703797
5   -6.18317963676,106.81405708         5.622984
6   -6.18141226474074,106.822889814815  5.564183

3 个答案:

答案 0 :(得分:2)

我认为您需要通过追加创建 DataFrame 列表,然后在外部循环中创建 concat

dfs = []
for i in range(len(gene_result)):
    result = pd.DataFrame()
    test = dummy_fitness(gene_result[i])  # function that resulted into dataframe
    coords = 'gen '+ str(i) +' coords'
    fitness_points = 'gen ' + str(i) + ' points'
    result[coords] = test.pudo_coords # getting the particular column i want
    result[fitness_points] = test.fit # getting the particular column i want
    dfs.append(result)
final = pd.concat(dfs, axis=1)

答案 1 :(得分:2)

我认为你的结果变量已经是一个数据框 - 你可以像连接一样

final = final.append(result)

答案 2 :(得分:0)

修改代码最简单的方法就是预先声明 final 并运行它

final = pd.concat([final, result], axis=1). 

或者,您可以在 finalfinal = result 时设置 i,而不是预先声明 0