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

如何为Unstack重塑后的DataFrame添加新列?

给Unstack后的DataFrame添加新列的方法

嘿,你已经通过unstack(0)把数据成功转成宽表格式了,给这个重塑后的DataFrame加新列其实和操作普通Pandas DataFrame完全一样,下面给你几种实用的方法:

1. 直接赋值添加单个列

这是最直观的方式,不管是给列赋固定值,还是基于现有列计算新值都适用:

# 示例1:添加一个固定值的列
SGE['Fixed_Value_Col'] = 100

# 示例2:基于已有列计算(比如计算2015年1月和2月的收入平均值)
SGE['Jan_Feb_Average'] = (SGE['2015-01'] + SGE['2015-02']) / 2

2. 用assign()批量添加多列

如果需要一次性添加多个新列,assign()方法会让代码更简洁易读,还支持链式操作:

# 一次性添加"总收入"和"最高收入"两列
SGE = SGE.assign(
    Total_2015=lambda df: df['2015-01'] + df['2015-02'] + df['2015-03'],
    Max_Monthly_Income=lambda df: df[['2015-01', '2015-02', '2015-03']].max(axis=1)
)

这里的lambda df里的df指代当前的DataFrame,你可以直接用它来引用已有列进行计算。

3. 根据索引(History)映射添加列

如果新列的值和你的行索引History相关,可以用map()方法来匹配映射关系:

# 假设我们有一个History到用户类型的映射字典
history_to_type = {1: '新用户', 2: '回流用户', 3: '忠实用户'}
# 映射生成新列
SGE['User_Type'] = SGE.index.map(history_to_type)

小提醒

  • 注意列名的准确性:你的列名是日期字符串(比如'2015-01'),引用的时候要确保字符串完全匹配,别打错日期格式
  • 处理空值:如果计算过程中出现NaN,可以用fillna()提前处理,比如(SGE['2015-01'] + SGE['2015-02']).fillna(0)/2

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:00:14