【发布时间】:2021-07-30 01:09:38
【问题描述】:
我有两个 Pandas DataFrame。
我想从每行文件中获取一个新的 DataFrame,其中包含文件、值和参数。
“第一个数据帧”中的行如下:
- file_1 file_5 value1 value2
“第二个数据框”中的行如下:
- file_1 paramA paramB
- file_5 paramX paramY
我需要类似的东西:
- file_1 file_5 value1 value2 paramA paramB paramX paramY
(它从“第一个数据帧”开始,并为该行中的两个 (file_1 file_5) 连接来自“第二个数据帧”的参数) 而且,对于“第一个数据帧”中的每一行
我找到了一个使用循环的解决方案。 它非常慢(构建一个串联的行,并将其附加到一个新的 DataFrame 中,逐行)。
是否有一些特殊的功能可以组合以在不循环的情况下执行它?
我的缓慢解决方案
for row in range(fist.shape[0]):
file_1 = fist['file_1'][row]
file_2 = fist['file_2'][row]
df0 = fist.iloc[row]
df1 = second.loc[second['FILE']==file_1,"paramA":"paramZ"]
df2 = second.loc[second['FILE']==file_2,"paramA":"paramZ"]
df1 = df1.add_suffix('_1')
df2 = df2.add_suffix('_2')
output.append(pd.concat([df0, df1, df2],axis=1))
【问题讨论】:
-
您能否编辑您的问题并将输入/预期的数据以文本形式(不是图像)放在那里,以便我们可以复制粘贴它?
-
建议将数据添加为文本,而不是图像。我们无法从图像中复制内容。
-
完成,抱歉。我尝试使用“表格”格式,但是在提交消息之前可以(图片是截图),提交后就不行了。我已经改变了以文本形式呈现它的方式
标签: python pandas dataframe merge concatenation