python - 使用来自两个 DataFrame、不同行的信息合并为一个
问题描述
我有两个 Pandas DataFrame。
我想从每行文件中的文件、值和参数中获取一个新的 DataFrame。
“第一个数据帧”中的行如下:
- 文件_1 文件_5 值1 值2
“第二个数据框”中的行如下:
- file_1 参数 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))
解决方案
df1 和 df2 是两个 pandas 数据框。
result = pd.concat([df1, df4], axis=1)
推荐阅读
- google-sheets-api - Google 关于 Sheets API v3 关闭的邮件中的歧义 2020 年 3 月 3 日
- c++ - c ++ int导致输出最大值
- node.js - 如何使用 CryptoJS 在 Node.js 中成功解密使用 OpenSSL 生成的 AES-256 加密内容
- python - 如何在 Python 中使用熊猫创建数据透视表?
- algorithm - 对 400 名学生的“出价”进行排序的简单方法?
- python - 使用 head_object 时为键值使用变量 - Amazon S3 Boto3
- vue.js - 在 vue.js 模板中显示主机名
- delphi - 获取 SQL 来比较数据库
- python - 如何使用 IF 语句对 Pandas 的多个条件进行分类
- javascript - 将表单数据收集到 Google 表格时遇到更多麻烦