gpt4 book ai didi

dataframe - Julia:将函数应用于 DataFrame 中的每个单元格(不丢失列名)

转载 作者:行者123 更新时间:2023-12-04 12:42:23 24 4
gpt4 key购买 nike

我正在深入研究 Julia,因此是我的“新手”问题。

来自 R 和 Python,我习惯于将简单函数(算术或其他)分别应用于整个 pandas.DataFramedata.frame

#both R and Python
df - 1 # returns all values -1, given all values are numeric
df == "someString" # returns a boolean df

有点复杂

#python
df = df.applymap(lambda v: v - 1 if v > 1 else v)
#R
df[] <- lapply(df, function(x) ifelse(x>1,x-1,x))

问题是,我不知道如何在 Julia 中执行此操作,我在网络上不容易找到类似的解决方案。 Stackoverflow 在使用 Google 时帮助很大。所以就在这里。我如何在 Julia 中做到这一点?

感谢您的帮助!

附言:

到目前为止,我已经提出了以下解决方案,但我丢失了我的列名。

DataFrame(colwise(x -> x .-1, df))

# seems like to much code for only subtracting 1 and loosing col names

最佳答案

请将您的 DataFrames.jl 安装更新到版本 1.4.2。

你可以像这样使用广播做你想做的一切:

julia> df = DataFrame(rand(2,3), :auto)
2×3 DataFrame
Row │ x1 x2 x3
│ Float64 Float64 Float64
─────┼──────────────────────────────
1 │ 0.720264 0.759493 0.998702
2 │ 0.726994 0.560153 0.243982

julia> df .+ 1
2×3 DataFrame
Row │ x1 x2 x3
│ Float64 Float64 Float64
─────┼───────────────────────────
1 │ 1.72026 1.75949 1.9987
2 │ 1.72699 1.56015 1.24398

julia> df .< 0.5
2×3 DataFrame
Row │ x1 x2 x3
│ Bool Bool Bool
─────┼─────────────────────
1 │ false false false
2 │ false false true

julia> df2 = string.(df)
2×3 DataFrame
Row │ x1 x2 x3
│ String String String
─────┼────────────────────────────────────────────────────────────
1 │ 0.7202642575401104 0.7594928463144177 0.9987024771396766
2 │ 0.7269944483236035 0.5601527006649413 0.2439815742224939

julia> parse.(Float64, df2)
2×3 DataFrame
Row │ x1 x2 x3
│ Float64 Float64 Float64
─────┼──────────────────────────────
1 │ 0.720264 0.759493 0.998702
2 │ 0.726994 0.560153 0.243982

这是你想要的吗?

关于dataframe - Julia:将函数应用于 DataFrame 中的每个单元格(不丢失列名),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57044789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com