[英]How to iterate over excel columns
(这可能是一个简单的问题,但我对 python 相当陌生)。 我有一个带有多个参数(18 个参数)的函数。 我还有一个 excel 文件,其中包含我想传递给函数的输入数据。 我假设第一步是将 excel 文件转换为数据框。 但是,我的问题是我不知道如何将列值传递给函数。
我的函数如下所示(仅在示例中包含 18 个参数中的 4 个):
def calculation(calculation_date, redemption, spot_price, conversion_ratio):
... #calculations here
return bond_data
我的数据结构如下:
如何将每列中的值传递给函数? 我构造了我的数据文件,以便第一列(A 列)匹配第一个参数,第二列(B 列)匹配第二个参数等等?
看看这个:使用 openpyxl 在 Python 中使用 Excel 电子表格的指南
你可以这样做:
from openpyxl import load_workbook
workbook = load_workbook(filename="sample.xlsx")
sheet = workbook.active
for row in sheet.iter_rows(min_row=2,
min_col=1,
max_col=4,
values_only=True):
row_dic = {
"parent": row[1],
"title": row[2],
"category": row[3]}
excel_list.append(row_dic)
并且您可以使用列表来调用计算函数。
你可以试试这个
读取 excel 文件后,如果您有df作为数据框对象,则
column_names=list(df.columns)
column_names 将包含您在 excel 文件中的列列表。 现在您可以遍历它。 例子
for column_name in column_names:
#your code
注意:您可以直接将column_names列表对象传递给函数。
例子:
#function defination
def column_names(list_of_columns)
#calling function
calculation(column_names)
让我知道这是否适合您。
谢谢
这可以通过 xlwings 实现,同时保留在 Excel 中。
xlwings 是一个 COM 包装器,这意味着它支持 Excel 和 Python 之间的双向通信。 使用 xlwings,您可以使用一些 VBA 来调用 Python 函数,或定义“用户定义的函数”并实际将您的 Python 代码用作 Excel 中的函数。
您需要安装 xlwings 并按照 xlwings 说明设置 Excel 工作簿(启用宏、信任和加载项)。 这不是特别困难。
在下面的代码中,我选择使用用户定义的函数,这使得 my_calculation 可作为 Excel 中的函数使用。
这是使用您定义的函数签名进行虚构计算的代码。 “xlwings”位实际上只是应用于函数的装饰器。
import xlwings as xw
import datetime
@xw.func
@xw.arg('calculation_date')
@xw.arg('redemption')
@xw.arg('spot_price')
@xw.arg('conversion_ratio')
def my_calculation(calculation_date, redemption, spot_price, conversion_ratio):
bond_data = redemption / spot_price * conversion_ratio
return bond_data
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.