Skip to main content
 首页 » 编程设计

python之将列合并为一个字符分隔的列适用于所有行

2025年05月04日17jirigala

我想将现有 xlxs 文件的所有列合并为一个由 | 分隔的列

输入

10000         1201 - 1201      Premium Ice Cream    EA     76840485116    EA 

需要输出

10000|1201 - 1201|Premium Ice Cream|EA|76840485116|EA 

我有一个 Excel 公式可以完成这项工作

=Sheet1!A2&"|"&Sheet1!B2&"|"&Sheet1!C2&"|"&Sheet1!D2&"|"&Sheet1!E2&"|"&Sheet1!F2&"|"&Sheet1!G2 

有没有办法用 python 脚本将公式应用于所有行?

我已经尝试使用 openpyxl 下面的代码是我最接近的解决方案。

from openpyxl import Workbook 
from openpyxl import load_workbook 
wb = load_workbook(filename = 'Filename.xlsx') 
sheet_ranges = wb['Sheet1'] 
ws = wb.active   
ws["A1"] = '=Sheet1!A2&"|"&Sheet1!B2&"|"&Sheet1!C2&"| 
           "&Sheet1!D2&"|"&Sheet1!E2&"|"&Sheet1!F2&"|"&Sheet1!G2' 
wb.save("Filename.xlsx") 

它目前合并第二行并放入 A1 单元格中。有超过 1800 行。 我想将公式应用于所有行并将结果放在新工作表上。

我显然是编码初学者,因此非常感谢您的帮助

请您参考如下方法:

使用应用功能:

df.apply(lambda x: '|'.join(x.astype(str)), 1) 

输入

    0       1            2                  3   4           5 
0   10000   1201 - 1201 Premium Ice Cream   EA  76840485116 EA 

输出(只有1行)

'10000|1201 - 1201|Premium Ice Cream|EA|76840485116|EA'