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

如何为Pandas DataFrame子集添加新列并手动填充数据?

解决Pandas添加列的问题

问题根源分析

  1. 全NaN问题:将姓名列表转Series时,新Series默认索引是0-3,但你提取的子集索引是原DataFrame的1504-1507,索引不匹配导致赋值后全为NaN。
  2. 视图警告与NaN行:iloc切片返回的是原DataFrame的视图而非副本,直接修改会触发警告;用字典赋值时,若字典键与子集索引不对应,会生成NaN行。

正确解决方案

步骤1:提取子集时生成副本

先通过.copy()明确创建子集的副本,避免视图修改警告:

# 提取订单1238的子集并转为副本
order_subset = restaurant.iloc[1504:1508].copy()

步骤2:直接赋值姓名列表

因为子集行数(4行)与姓名列表长度完全匹配,直接赋值即可自动按顺序填充:

customer_names = ['Jenny', 'Leon', 'Tuan', 'Victoria']
order_subset['customer_name'] = customer_names

一步到位写法(可选)

用assign()方法合并操作:

order_subset = restaurant.iloc[1504:1508].copy().assign(
    customer_name=['Jenny', 'Leon', 'Tuan', 'Victoria']
)

验证方法

打印子集确认结果:

print(order_subset[['order_number', 'customer_name']])

输出应包含正确匹配的姓名,无NaN值,也不会触发警告。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 22:32:17