Pyspark - 使用 python 或 pyspark 转换 excel 文件的行和列

Posted

技术标签:

【中文标题】Pyspark - 使用 python 或 pyspark 转换 excel 文件的行和列【英文标题】:Pyspark- transform rows and columns of excel file using python or pyspark 【发布时间】:2021-09-14 10:18:09 【问题描述】:

我有文件(xlsx),其中包含代理名称及其数据等数据,然后是代理名称及其数据。

例子:

如何添加一个列,该列将包含所有具有其数据的列中的代理名称?我想创建一个数据框并计算 kpis。

预期输出:

【问题讨论】:

发布您的预期输出和您尝试过的代码 您介意分享数据框示例还是.xlsx 我可以获取您的邮件 ID 或其他任何信息,以便我可以分享。因为在这里分享不安全。 上传到文件共享网站并在此处发布链接 请在此处找到文件:wetransfer.com/downloads/… 【参考方案1】:

我们可以将以下格式的列名称添加到相应的单元格中。

import openpyxl
from copy import copy
path = "C:/Users/Python/TestData.xlsx"
wb = openpyxl.load_workbook(path) 
sheet_obj = wb.active
Name = sheet_obj.cell(row = 1, column = 1)
#NameFont = sheet_obj.cell(row = 2, column = 1)
sheet_obj.cell(row = 2, column = 8).value = "Name"
sheet_obj.cell(row = 2, column = 8)._style = copy(sheet_obj.cell(row = 2, column = 1)._style)
sheet_obj['H3'] = Name.value
sheet_obj.cell(row = 3, column = 8)._style = copy(sheet_obj.cell(row = 3, column = 1)._style)
sheet_obj['H4'] = Name.value
sheet_obj.cell(row = 4, column = 8)._style = copy(sheet_obj.cell(row = 4, column = 1)._style)
sheet_obj['H5'] = Name.value
sheet_obj.cell(row = 5, column = 8)._style = copy(sheet_obj.cell(row = 5, column = 1)._style)
sheet_obj['H6'] = Name.value
sheet_obj.cell(row = 6, column = 8)._style = copy(sheet_obj.cell(row = 6, column = 1)._style)
sheet_obj['H7'] = Name.value
sheet_obj.cell(row = 7, column = 8)._style = copy(sheet_obj.cell(row = 7, column = 1)._style)
sheet_obj['H8'] = Name.value
sheet_obj.cell(row = 8, column = 8)._style = copy(sheet_obj.cell(row = 8, column = 1)._style)
wb.save(path)

下面是输出:

如果我们想将它应用于整个 excel 工作表,请保持循环,这可以根据名称完成。

【讨论】:

以上是关于Pyspark - 使用 python 或 pyspark 转换 excel 文件的行和列的主要内容,如果未能解决你的问题,请参考以下文章

pyspark 为自定义模块返回名为错误的无模块

Pyspark - 使用 python 或 pyspark 转换 excel 文件的行和列

pyspark.sql 无法实例化 HiveMetaStoreClient - noclassfound from org.apache.commons.dbcp.connectionfactory

将 hive 表卸载到。使用 Spark 或 pyspark 或 python 的 dat 文件

如何使用 Python 或 Pyspark 或 scala 在数据块中获取笔记本的作业运行结果日志

在 python 或 Pyspark 数据框中使用特殊字符重命名列