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

如何仅对DataFrame指定索引列的行进行格式设置?

解决方法

报错原因

你碰到的AttributeError: 'DataFrame' object has no attribute 'map'是因为map()是Pandas单列(Series)的专属方法,而df.iloc[:, 1:]返回的是多列的DataFrame,自然没有这个属性。

正确实现方式

要通过列索引选择目标列并格式化0位小数,同时保留原DataFrame其他列的格式,可以按以下步骤操作:

1. 格式化为字符串类型(保留0位小数格式)

先复制原DataFrame避免修改原数据,再用applymap()对目标列的每个元素做格式化(applymap()是DataFrame的元素级操作方法):

import pandas as pd

df = pd.DataFrame({'A': ['foo', 'bar'],
                   'B': [134.532, 543.009],
                   'C': [1.98, 0.9],
                   'D': [300.99, 7000.89]
})

# 复制原数据
new_df = df.copy()
# 通过列索引选择第1、2列(对应B、C),格式化0位小数
new_df.iloc[:, 1:3] = new_df.iloc[:, 1:3].applymap('{:,.0f}'.format)
print(new_df)

输出结果:

A    B  C        D
0  foo  135  2    300.99
1  bar  543  1  7000.89

2. 保留数值类型(四舍五入到0位小数)

如果不需要转成字符串,只是数值上保留0位小数,用round()更直接:

new_df = df.copy()
new_df.iloc[:, 1:3] = new_df.iloc[:, 1:3].round(0)
print(new_df)

输出结果:

A      B    C        D
0  foo  135.0  2.0    300.99
1  bar  543.0  1.0  7000.89

内容的提问来源于stack exchange,提问作者Luiz Scheuer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:50:17