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

Pandas遍历DataFrame行时无法实现预期格式化输出求助

解决Pandas遍历行时Stream列右对齐的问题

我明白你想让输出里的Stream列实现右对齐,之前的尝试没生效是因为你虽然调用了rjust()方法,但没有把处理后的结果放到print语句里——你还是输出了原始的Stream值。别担心,我给你两个简单的解决办法:

方法1:直接在循环中修正输出逻辑

只需要修改循环里的打印语句,把Stream列的值用rjust()处理后再输出就行:

import pandas as pd
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 'Age': [21, 19, 20, 18], 'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 'Percentage': [88, 92, 95, 70]}
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage'])
print("Given Dataframe :\n", df)
print("\nIterating over rows using index attribute :\n")
# 这里修改print语句,加入rjust处理逻辑
for ind in df.index:
    print(df['Name'][ind], df['Stream'][ind].rjust(15, " "))

运行这段代码后,你就能得到预期的输出:

Ankit           Math
Amit        Commerce
Aishwarya        Arts
Priyanka     Biology

方法2:用Pandas风格的方式处理(更简洁)

如果你不想手动写循环,也可以用apply()方法结合格式化字符串来实现,更符合Pandas的使用习惯:

import pandas as pd
data = {'Name': ['Ankit', 'Amit', 'Aishwarya', 'Priyanka'], 'Age': [21, 19, 20, 18], 'Stream': ['Math', 'Commerce', 'Arts', 'Biology'], 'Percentage': [88, 92, 95, 70]}
df = pd.DataFrame(data, columns = ['Name', 'Age', 'Stream', 'Percentage'])
print("Given Dataframe :\n", df)
print("\nIterating over rows using index attribute :\n")
# 用apply逐行处理并打印
df.apply(lambda row: print(f"{row['Name']} {row['Stream'].rjust(15)}"), axis=1)

这个方法同样能得到你想要的右对齐效果,代码也更简洁。

内容的提问来源于stack exchange,提问作者anurag pandey

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 07:56:05