如何在Pandas中按指定格式循环打印DataFrame的num列数值
解决Pandas DataFrame循环打印num列数值的问题
你的代码有两个关键问题导致无法正确嵌入数值:
- format方法的调用位置错误:你把
format()调用在了print()函数的返回值上,而实际上应该直接在要格式化的字符串上调用format()。 - 取值对象错误:你使用
new['num']取的是整个num列,而在iterrows()循环中,应该取当前行的num值,也就是row['num']。
几种正确的实现方式:
方式1:使用字符串format()方法(兼容所有Python版本)
for index, row in new.iterrows(): print('The value is {}'.format(row['num']))
方式2:使用f-string(Python 3.6+推荐,语法更简洁直观)
for index, row in new.iterrows(): print(f'The value is {row["num"]}')
方式3:直接遍历num列(更高效,适合大数据量场景)
iterrows()在处理大型DataFrame时效率较低,如果你不需要用到行索引和其他列的数据,可以直接遍历num列的数值:
for num_val in new['num']: print(f'The value is {num_val}')
为什么这些写法能生效?
- 在
iterrows()循环中,row是一个代表单行数据的Series对象,row['num']可以精准获取当前行的num列数值。 - f-string通过
{变量名}的语法直接嵌入变量,比format()更简洁易读。 - 直接遍历
new['num']时,Pandas的Series对象本身支持迭代,每次迭代会取出列中的单个数值。
内容的提问来源于stack exchange,提问作者EA00
相关产品推荐
相关产品推荐

