小编Bog*_*ski的帖子

朱莉娅不精确错误:Int64

我是朱莉娅的新手。得到这个 InexactError 。提到我曾尝试预先转换为浮点数但没有奏效,也许我做错了什么。

column = df[:, i]  
max = maximum(column)
min = minimum(column)
scaled_column = (column .- min)/max   # This is the error, I think
df[:, i] = scaled_column
Run Code Online (Sandbox Code Playgroud)
julia> VERSION
v"1.4.2"
Run Code Online (Sandbox Code Playgroud)

error-handling dataframe julia

4
推荐指数
1
解决办法
1659
查看次数

如何在Julia 1.0中使用多个线程?

我有一个使用@threads宏的脚本.当我在终端中执行脚本时

$ julia -p 4 my_script.jl
Run Code Online (Sandbox Code Playgroud)

文件包含的位置:

println("This program is using ", Threads.nthreads(), " threads")
Run Code Online (Sandbox Code Playgroud)

打印比我只使用一个线程.我能做错什么?

multithreading julia

3
推荐指数
1
解决办法
461
查看次数

DataFrames.jl - 按类型或名称子字符串选择列

我是朱莉娅的新手。

在 DataFrames.jl 中,有没有办法选择给定类型的所有变量,或名称中带有给定子字符串的所有变量?

例如在 R 中我们有:

df %>% select_if(is.numeric)

df %>% select(matches("_some_string_"))

Run Code Online (Sandbox Code Playgroud)

谢谢。

dataframe julia

3
推荐指数
1
解决办法
1181
查看次数

将 Julia 数据框列从字符串转换为浮点型

我尝试找到一种简单的方法将字符串类型的列转换为浮点数。

我尝试了一些:

df[!,x] = parse(Float64, df[!,y])
Run Code Online (Sandbox Code Playgroud)

但它不起作用。

如果您有任何想法,我将不胜感激

arrays dataframe julia

3
推荐指数
1
解决办法
3061
查看次数

Julia DataFrames.jl、Groupby 和多列求和

我想知道如何使用“by”函数对多列进行分组和求和。如果我想对一列进行分组,我可以这样做

someData = DataFrame(:Countries => ["Afganistan","Albainia","Albainia","Andorra","Angola","Angola"],:population => rand(100:1000,6), :GDP => rand(1:100,6))

by(someData, :Countries, df ->DataFrame(pop_sum = sum(df[:population])))
Run Code Online (Sandbox Code Playgroud)

但是,我想得到人口和 GDP 的总和。我尝试了类似下面的内容,这当然是不正确的。有任何想法吗?

by(someData, :Countries, df ->DataFrame(pop_sum, GDP_sum = sum(df[[:population,:GDP]])))
Run Code Online (Sandbox Code Playgroud)

dataframe julia

3
推荐指数
1
解决办法
499
查看次数

加入多个数据帧

我想知道 Julia DataFrames 是否有办法一次性加入多个数据帧,

 using DataFrames

 employer = DataFrame(
    ID = Array{Int64}([01,02,03,04,05,09,11,20]),
    name = Array{String}(["Matthews","Daniella", "Kofi", "Vladmir", "Jean", "James", "Ayo", "Bill"])
    )

salary = DataFrame(
    ID = Array{Int64}([01,02,03,04,05,06,08,23]),
    amount = Array{Int64}([2050,3000,3500,3500,2500,3400,2700,4500])
)

hours = DataFrame(
    ID = Array{Int64}([01,02,03,04,05,08,09,23]),
    time = Array{Int64}([40,40,40,40,40,38,45,50])
)

# I tried adding them in an array but ofcoures that results in an error
empSalHrs = innerjoin([employer,salary,hours], on = :ID)

# In python you can achieve this using
import pandas as pd 
from functools import reduce

df …
Run Code Online (Sandbox Code Playgroud)

dataframe julia

3
推荐指数
1
解决办法
39
查看次数

在同一列中分配过滤值的结果不正确

我想过滤列中的值并为过滤结果分配一个值。但是我得到了不正确的结果,在这种情况下,我想为 20 到 30 之间的值分配一个值,其余为 0。但我为所有值分配了 1。任何想法为什么?

df = DataFrame(
    Dict(
        "time" => collect(1:10),
        "cost" => [23,99,81,56,28,31,98,34,21,17]
    )
)

df.cat = missing
df.cat = ifelse.(df.cost .> 20 .& df.cost .< 30, 1,0)
Run Code Online (Sandbox Code Playgroud)

出去:

在此处输入图片说明

dataframe julia

3
推荐指数
2
解决办法
43
查看次数

朱莉娅错误:地图未在字典中定义

julia> hotcell2vocab = Dict([(cell, i-1+vocab_start)
                  for (i,cell)  in  enumerate(hotcell)]);

julia> vocab2hotcell = map(reverse, hotcell2vocab)
ERROR: map is not defined on dictionaries
Run Code Online (Sandbox Code Playgroud)

hotcell2vocab是 a Dict,有没有一种方法可以反转 a 中的键和值Dict

dictionary julia

2
推荐指数
1
解决办法
1381
查看次数

如何在 Julia 数据帧上进行就地广播操作?

我有一个包含单列“名称”的数据框,我想就地小写该值。

\n

现有的小写广播似乎创建了一个新的数据帧,我该如何将其作为就地修改?

\n
julia> df\n5\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name      \xe2\x94\x82\n\xe2\x94\x82     \xe2\x94\x82 String    \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1   \xe2\x94\x82 Mary      \xe2\x94\x82\n\xe2\x94\x82 2   \xe2\x94\x82 Anna      \xe2\x94\x82\n\xe2\x94\x82 3   \xe2\x94\x82 Emma      \xe2\x94\x82\n\xe2\x94\x82 4   \xe2\x94\x82 Elizabeth \xe2\x94\x82\n\xe2\x94\x82 5   \xe2\x94\x82 Minnie    \xe2\x94\x82\n\njulia> lowercase.(df.Name)\n5-element Array{String,1}:\n "mary"\n "anna"\n "emma"\n "elizabeth"\n "minnie"\n\njulia> df\n5\xc3\x971 DataFrame\n\xe2\x94\x82 Row \xe2\x94\x82 Name      \xe2\x94\x82\n\xe2\x94\x82     \xe2\x94\x82 String    \xe2\x94\x82\n\xe2\x94\x9c\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xbc\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\x80\xe2\x94\xa4\n\xe2\x94\x82 1   \xe2\x94\x82 Mary      \xe2\x94\x82\n\xe2\x94\x82 2   \xe2\x94\x82 Anna      \xe2\x94\x82\n\xe2\x94\x82 3   \xe2\x94\x82 Emma      \xe2\x94\x82\n\xe2\x94\x82 4   \xe2\x94\x82 Elizabeth \xe2\x94\x82\n\xe2\x94\x82 5   \xe2\x94\x82 Minnie    \xe2\x94\x82\n
Run Code Online (Sandbox Code Playgroud)\n

dataframe julia

2
推荐指数
1
解决办法
614
查看次数

如何获取 Julia DataFrame 的内存大小?

我想优化 Julia DataFrame(其中的列)。为此,我想获取优化前后 DataFrame 的大小。

这是一个数据框示例:

rows, columns = 10_000, 50
df = rand([x for x in "ABCDE"], rows, columns) |> DataFrame
Run Code Online (Sandbox Code Playgroud)

这个物体的大小df...

sizeof(df)
Run Code Online (Sandbox Code Playgroud)

尺寸为24。

但是,当我对列的大小求和时,大小是不同的......

sum([sizeof(df[x]) for x in names(df)])
Run Code Online (Sandbox Code Playgroud)

列大小的总和为 2000000。

这是优化...

for i = names(df)
    df[i] = CategoricalArray(df[i], ordered=false)
end
Run Code Online (Sandbox Code Playgroud)

结果是:

sizeof(df)
Run Code Online (Sandbox Code Playgroud)

尺寸为24。

sum([sizeof(df[x]) for x in names(df)])
Run Code Online (Sandbox Code Playgroud)

列大小的总和为 800。

关于如何获取 DataFrame 的准确大小有什么建议吗?

memory size dataframe julia

2
推荐指数
1
解决办法
803
查看次数

朱莉娅:我怎样才能使这个重复的条件语句代码更短?

我想创建15个虚拟变量并在下面的代码中使用它们,我也想让它更短.所以问题是如何在不使用D1=zeros(3300)......的情况下制作这15个虚拟变量D15=zeros(3300).

另外,我怎样才能使它更紧凑?

for i=1:3300
    if dt[i,2]==1 D1[i]=1 end
    if dt[i,2]==2 D2[i]=1 end
    if dt[i,2]==3 D3[i]=1 end
    if dt[i,2]==4 D4[i]=1 end
    if dt[i,2]==5 D5[i]=1 end
    if dt[i,2]==6 D6[i]=1 end
    if dt[i,2]==7 D7[i]=1 end
    if dt[i,2]==8 D8[i]=1 end
    if dt[i,2]==9 D9[i]=1 end
    if dt[i,2]==10 D10[i]=1 end
    if dt[i,2]==11 D11[i]=1 end
    if dt[i,2]==12 D12[i]=1 end
    if dt[i,2]==13 D13[i]=1 end
    if dt[i,2]==14 D14[i]=1 end
    if dt[i,2]==15 D15[i]=1 end
end
Run Code Online (Sandbox Code Playgroud)

julia

1
推荐指数
1
解决办法
72
查看次数