我是朱莉娅的新手。得到这个 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) 我有一个使用@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)
打印比我只使用一个线程.我能做错什么?
我是朱莉娅的新手。
在 DataFrames.jl 中,有没有办法选择给定类型的所有变量,或名称中带有给定子字符串的所有变量?
例如在 R 中我们有:
df %>% select_if(is.numeric)
df %>% select(matches("_some_string_"))
Run Code Online (Sandbox Code Playgroud)
谢谢。
我尝试找到一种简单的方法将字符串类型的列转换为浮点数。
我尝试了一些:
df[!,x] = parse(Float64, df[!,y])
Run Code Online (Sandbox Code Playgroud)
但它不起作用。
如果您有任何想法,我将不胜感激
我想知道如何使用“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) 我想知道 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) 我想过滤列中的值并为过滤结果分配一个值。但是我得到了不正确的结果,在这种情况下,我想为 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)
出去:
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?
我有一个包含单列“名称”的数据框,我想就地小写该值。
\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\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\nRun Code Online (Sandbox Code Playgroud)\n 我想优化 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 的准确大小有什么建议吗?
我想创建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)