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

Julia中使用类mutate管道式操作实现字符串转换与滚动均值计算

用管道式操作实现DataFrame的字符串转换与移动平均

没问题!你想要的这种管道式操作完全可以实现,而且写法比你预想的还要顺畅。咱们直接调整你的代码就能达到目标,先看正确的实现:

首先要确保你已经加载了必要的包(@linq宏来自DataFramesMeta,移动平均函数如果用StatsBase的movmean也需要提前加载):

using DataFrames, DataFramesMeta, StatsBase

然后就可以用管道式的写法完成所有操作:

# 生成处理后的新DataFrame,不修改原d1
processed_df = @linq d1 |> 
    mutate(Exports = parse.(Float64, :Exports)) |>
    mutate(Exports_4mv = movmean(:Exports, 4))

关键点说明:

  • 你原来的@linq写法几乎是对的,核心就是用mutate串联起列转换和移动平均计算,所有操作都在管道里完成,不需要逐行修改原DataFrame。
  • 第一个mutate把字符串类型的Exports列批量转换成Float64数值类型,直接覆盖原列(如果不想覆盖原列,你可以把新列命名为Exports_Float之类的,比如mutate(Exports_Float = parse.(Float64, :Exports)))。
  • 第二个mutate基于转换后的数值列计算4期移动平均,生成新列Exports_4mv。这里我用了StatsBase包的movmean,如果你之前用的是其他包的runmean(比如TimeSeries里的函数),直接替换成runmean即可。

如果你想验证结果,可以用first(processed_df, 10)查看前10行,就能看到转换后的数值列和新生成的移动平均列啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 19:42:29