Python中pandas DataFrame列转数组迭代时长度异常问题求解
问题根源
len(df['columnA']) 统计的是columnA这个Pandas Series的行数,你的示例DataFrame只有1行,因此返回结果为1,并不是单元格内存储的列表的长度。你原来生成columnA字段的逻辑是正确的,每个单元格确实存储了长度为2的列表。
调整实现方法
1. 正确获取列表长度
如果要取单行中columnA存储的列表的长度,需要先取出对应行的元素再计算长度:
# 取第一行的columnA值计算长度,返回结果为2 print("Length: ", len(df['columnA'].iloc[0]))
2. 迭代列表元素
单条记录场景(你的示例只有1行)
直接取出该行的列表遍历即可,会依次输出0和1:
for i in range(len(df['columnA'].iloc[0])): print(i)
如果需要同时拿到列表的元素值,可以用enumerate:
for idx, val in enumerate(df['columnA'].iloc[0]): print(f"索引:{idx},值:{val}")
多条记录场景(DataFrame有多行时)
嵌套遍历每行的列表即可:
# 逐行遍历 for row_list in df['columnA']: # 遍历当前行的列表元素 for idx, val in enumerate(row_list): print(idx) # 自定义处理逻辑
内容的提问来源于stack exchange,提问作者Giampaolo Levorato
相关产品推荐
相关产品推荐

