我正在编写一个脚本来填写表单,并希望引用 Excel 电子表格(一列)中的数据来填写重复出现的字段。
import pandas as pd
file = 'File Path Here'
xl = pd.ExcelFile(file)
df = pd.read_excel(file, 'Sheet1', index_col=None)
num = 1
li = [(df.iloc[0,0])]
def next_app():
for num, elem in enumerate(li):
thiselem = elem
nextelem = li[(num + 1) % len(li)]
print(nextelem)
next_app()
这显然打印 1 个值,但我不确定如何在需要时在下一行之后调用每一行值。我确信 for 循环中有错误,或者我什至需要 for 循环,但我不知道如何纠正它。
Excel 文件包含一个名为“Application”的文本列,包含 300 多行:
|应用|
|应用程序名称1|
|应用程序名称2|
|应用程序名称3|
等等
问题
当遇到如下所示的表单字段时,我想一一引用每个“应用程序名称”(我使用 selenium 来完成此操作):
name = browser.find_element_by_id('slpt-createappdialog-app-name-inputEl')
name.send_keys('Appname3')
除了每次都输入文本“AppnameX”之外,我会调用下一行值。这可以做到吗?
最佳答案
您可以使用以下方法循环遍历列表中的所有应用程序:
for app in df['application']:
name.send_keys(app)
或者,如果您有单独的语句创建循环,那么您每次都可以使用生成器获取列表中的下一个应用程序:
apps = df['application'].iteritems()
for i in range(5):
print(next(apps)[1])
print(next(apps)[1])
print(next(apps)[1])
这里的 apps 是一个返回(索引,项目)对的生成器,项目部分通过 [1] 索引访问。
关于python - 使用 Pandas 引用下一行值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45081599/