You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python按顺序提取Excel中的功能列表数据?

问题:按顺序提取Excel中的功能列表

我正在使用Python按顺序提取Excel中的功能列表,期望得到如下格式的纯文本结果:

Login
Submit
forgot password
Delete
(Submitted)
Next>confirm
save
cancel
upload
delete
...

但处理Excel索引时逻辑出错,现有代码如下:

import pandas as pd

df = pd.read_excel(fileNameMatrix,sheet_name="doTestCase")
lastRowNumber = len(df)
newDict = df.to_dict()
newJson = df.to_json()
document = docx.Document()
# print(newDict)
datalist = []
def sorting():
    controller = True
    dataexist = ""
    j = 0
    listindex = 0
    while controller:
        try:    
            if j == 0:
                menulist = []
                func2 = newDict['Menu']
                for i in range(len(func2)):
                    if type(func2[i]) == str:
                        menulist.append()
                        listindex = listindex + 1
                        dataexist = "1"
                datalist.append(menulist)
            elif j > 0:
                func2 = newDict['Unnamed: '+str(j)]
                unnamelist = []
                for i in range(len(func2)):
                    if type(func2[i]) == str:
                            dataexist = "1"
                            unnamelist.append()
                datalist.append(unnamelist)
                # unnamelist = []
            if dataexist == "1":
                j = j+1
        except:
            return datalist
            controller = False
sorting()

当前得到的结果为:

[['Login', 'delete ', 'userinfo'], ['Submit', '(submitted)', 'test'], ['forgot password', 'Next>confirm', 'Save'], ['save', 'delete'], ['cancel'], ['upload']]


逻辑修正建议

你的核心问题有两个:一是代码中append()方法未传入实际元素,二是错误地按列分组存储,没有按行优先的顺序收集所有功能项。结合Excel的结构(功能项按行从左到右、从上到下排列),修正思路如下:

  1. 按行遍历DataFrame:直接遍历每行,依次提取每行中的非空功能项,这是最贴合需求的遍历方式。
  2. 严格判断有效元素:排除NaN值和空字符串,只保留实际的功能文本。
  3. 扁平化收集结果:把所有有效元素存入一个列表,而非子列表嵌套的结构。

修正后的代码示例

import pandas as pd

df = pd.read_excel(fileNameMatrix, sheet_name="doTestCase")
result = []

# 遍历DataFrame的每一行
for _, row in df.iterrows():
    # 遍历该行的每个单元格值
    for value in row:
        # 筛选非空字符串(strip()处理首尾空格)
        if isinstance(value, str) and value.strip():
            result.append(value.strip())

# 输出期望格式的结果
for item in result:
    print(item)

这段代码会直接输出每行一个功能项的纯文本,完全匹配你的需求。


内容的提问来源于stack exchange,提问作者jame piENo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 17:45:35