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

如何用列表值替换Pandas DataFrame指定索引对应值

解决方案:精准替换DataFrame指定索引的值

嘿,这事儿其实挺容易搞定的,用Pandas的loc索引器就能精准定位目标索引,替换对应值的同时完全不改动其他数据。我给你一步步演示:

步骤1:准备你的数据

首先先还原你的DataFrame(我简化了原数据方便演示):

import pandas as pd

# 你的原始DataFrame
df = pd.DataFrame.from_dict({
    u'Afghanistan': 6532.0, u'Albania': 662.0, u'Andorra': 2.0,
    u'Angola': 2219.0, u'Antigua and Barbuda': 0.0, u'Argentina': 6.0
})

假设你已经有了两个列表:

  • 一个是需要替换值的索引(国家名)
  • 另一个是对应的替换值
# 要替换的目标索引列表
target_indices = ['Afghanistan', 'Albania', 'Argentina']
# 对应的新值列表(注意长度要和索引列表一致!)
new_values = [7000.0, 750.0, 10.0]

步骤2:执行替换操作

直接用loc定位目标索引,然后赋值新值就行:

# 精准替换指定索引的数值,其他行保持不变
df.loc[target_indices] = new_values

步骤3:验证结果

打印一下DataFrame,就能看到指定索引的值已经更新,其他数据完全没变化:

print(df)

输出示例:

0
Afghanistan    7000.0
Albania         750.0
Andorra           2.0
Angola         2219.0
Antigua and Barbuda    0.0
Argentina        10.0

额外说明

  • 一定要保证target_indices和new_values的长度完全一致,否则会触发Pandas的赋值错误。
  • 如果你的DataFrame是多列结构,只需要在loc里指定列名即可,比如:
    # 仅替换指定列的对应行值
    df.loc[target_indices, '你的列名称'] = new_values
    
  • loc是按标签索引定位,所以完全不用担心会误改其他行的数据,非常安全。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 07:34:48