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

使用Pandas提取Excel单元格生成元组失败,仅获首行及NaN值

解决Excel单元格数据提取为元组的问题

我来帮你排查代码里的问题,顺便给出正确的实现方式~

问题根源:误解了iterrows()的返回值

你用iterrows()循环时,每次迭代返回的是**(行索引, 该行的Series对象)**这个元组。你的内层循环for i in row:会把行索引和整个Series对象直接加入列表,而不是遍历Series里的每个单元格值。这就导致你拿到的不是实际的单元格数据,还混入了索引和NaN(Series里未填充的位置会显示NaN)。

正确实现方式

这里有两种简单的方法可以达到你的需求:

方法1:用NumPy扁平化数组(最简洁)

直接把DataFrame转成一维数组,再转成元组,行优先遍历所有单元格:

import pandas as pd

fm = pd.read_excel("File", sheet_name='Sheet1')
# 扁平化所有单元格值,dropna=False保留原有的NaN(如果不需要可以去掉)
all_cells = fm.to_numpy().flatten()
mytuple = tuple(all_cells)
print(mytuple)

如果想把NaN替换成空字符串或其他默认值,可以先处理:

all_cells = fm.fillna("").to_numpy().flatten()

方法2:修正循环逻辑(如果你偏好手动遍历)

解构iterrows()的返回值,然后遍历每行的具体值:

import pandas as pd

fm = pd.read_excel("File", sheet_name='Sheet1')
L = []
# 解构出索引和行数据Series
for index, row_data in fm.iterrows():
    # 遍历该行的所有单元格值
    for value in row_data.values:
        L.append(value)
mytuple = tuple(L)
print(mytuple)

这样就能正确提取所有单元格的数据,按行顺序组成元组啦~

内容的提问来源于stack exchange,提问作者Asael Bar Ilan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:25:01