如何在Pandas链式操作中正确添加新列?
解决Pandas链式操作添加新列的问题
你的代码当前用逗号分隔操作,生成的是元组而非链式调用,导致.assign无法正确作用于DataFrame。正确的链式操作需要让每个方法都作用在前一步返回的DataFrame上,修改后的代码如下:
result = ( df.drop(['Day_of_year', 'Month', 'Week_of_year'], axis='columns') # 将timestamp列转为datetime类型,用lambda引用当前链式中的DataFrame .assign(timestamp=lambda x: pd.to_datetime(x['timestamp'])) # 添加名为random的新列,值为0 .assign(random=0) ) updated_df = result updated_df
关键说明:
- 移除逗号,用
.连接每个方法调用,确保操作链的连续性 - 使用
lambda x在assign中引用当前链式步骤的DataFrame,避免依赖原始的df变量,更符合链式操作的逻辑 - 最终
result直接就是处理完成的DataFrame,无需再取元组元素
内容的提问来源于stack exchange,提问作者elksie5000
相关产品推荐
相关产品推荐

