pandas遍历DataFrame报tuple无split属性错误的解决方法
报错原因
zip()迭代返回的每个元素是Python元组(tuple),不是字符串,因此不存在字符串专属的split()方法,这是触发报错的直接原因。
从你的打印结果能看到,每个e的结构为(列值, epoch时间戳),比如('1121', 1656428160)——括号、逗号只是元组的打印展示格式,不是元素本身的内容,你不需要做任何字符串拆分操作,元组本身就已经把两个值独立存储好了。
额外提示:遍历pandas列时不需要手动调用list()把Series转成列表,zip可以直接遍历Series对象,多余的转换会产生不必要的内存开销。
解决方法
方法1:循环时直接解包(最推荐,代码最简洁)
直接在循环语句里把元组的两个值拆到对应变量里,省去后续取值步骤,运行后直接输出你想要的格式:
for value, epoch_time in zip(df[each_column], df['epoch']): print(f"on 0: metric = {value} {epoch_time}")
方法2:通过元组下标取值
如果你需要保留e变量承接元组,直接通过索引位置取对应值即可,不要调用split():
for e in zip(df[each_column], df['epoch']): value = e[0] # 取元组第一个元素,对应指标值 epoch_time = e[1] # 取元组第二个元素,对应时间戳 print(f"on 0: metric = {value} {epoch_time}")
内容的提问来源于stack exchange,提问作者Indi59
相关产品推荐
相关产品推荐

