小编Aft*_*ray的帖子

如何在 Julia Dataframe 中添加新列

假设我有数据框和向量,例如:

dataframe = DataFrame(Data1 = rand(10), Data2 = rand(10));
Data3 = rand(10)
Run Code Online (Sandbox Code Playgroud)

我想添加Data3到数据框,例如:

    Data1       Data2     Data3
    Float64     Float64   Float64
1   0.757345    0.903133  0.502133
2   0.294749    0.327502  0.323133
3   0.156397    0.427323  0.123133
Run Code Online (Sandbox Code Playgroud)

在 Python 中,我可以只df["Data3"] = Data3添加列,但在 Julia 数据框中,df[!,Data3] = Data3返回:

  • MethodError: 没有方法匹配 setindex!(::DataFrame, ::Vector{Float64}, ::typeof(!), ::Vector{Float64})

我也检查了这个解决方案,但这给了我:

  • ArgumentError:不支持语法 df[column],请改用 df[!, column]

如何在 Julia Dataframe 中添加向量作为新列?

dataframe julia

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

在 Julia 中文件时使用“r”作为转义序列

在Python上使用r在文件路径前面,可以处理转义序列,例如:

   df = pd.read_csv(r"D:\datasets\42133.csv")
Run Code Online (Sandbox Code Playgroud)

然而,在 Julia 上,以下代码返回MethodError: no method matches joinpath(::Regex)

file_path = r"D:\datasets\42133.csv"
df = DataFrame(CSV.File(file_path))
Run Code Online (Sandbox Code Playgroud)

我查了一下,知道我可以更改\\\or /。但想知道为什么 Julia 不允许使用r"String"r"String"朱莉娅也有类似的事情吗?

string julia

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

删除 Julia 列表中的空字符串

我正在寻找有效的解决方案来删除 Julia 列表中的空字符串。

这是我的清单:

li = ["one", "two", "three", " ", "four", "five"]
Run Code Online (Sandbox Code Playgroud)

我可以使用for 循环删除空字符串,如下所示:

new_li = []
for i in li
    if i == " "
    else
        push!(new_li, i)
    end
end
Run Code Online (Sandbox Code Playgroud)

但我相信有更有效的方法来删除空字符串。

list julia

5
推荐指数
2
解决办法
929
查看次数

为什么 print 在 Python 中返回 \\,而不是转义字符 \

下面的代码打印表情符号,如下所示:

print('\U0001F602')
print('{}'.format('\U0001F602'))
Run Code Online (Sandbox Code Playgroud)

但是,如果我\像下面这样使用,它会打印\U0001F602

print('\{}'.format('U0001F602'))
Run Code Online (Sandbox Code Playgroud)

为什么print('\{}'.format())返回的是\\,而不是转义字符\

我一直在检查这个并在谷歌中搜索,但找不到正确的答案。

python string format encode

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

将 Julia 数据框列标题更改为小写?

我正在寻找将列标题更改为小写的解决方案。

比方说,我有这个数据框:

df = DataFrame(TIME = ["2021-10-21","2021-10-22","2021-10-23"], 
               MQ2= [-1.1, -2, 1],
               MQ3=[-1, -1, 3.1],
               MQ8= [-1, -4.2, 2],
               )
>>>df
    TIME        MQ2     MQ3     MQ8
    String      Float64 Float64 Float64
1   2021-10-21  -1.1    -1.0    -1.0
2   2021-10-22  -2.0    -1.0    -4.2
3   2021-10-23  1.0     3.1     2.0
Run Code Online (Sandbox Code Playgroud)

我想更改所有列的标题,例如 将MQ2更改为mq2。可能类似于df.columns.str.lower()Python 中的东西。

因此,我可以实现这个数据框:

    time        mq2     mq3     mq8
    String      Float64 Float64 Float64
1   2021-10-21  -1.1    -1.0    -1.0
2   2021-10-22  -2.0    -1.0    -4.2
3   2021-10-23  1.0     3.1     2.0
Run Code Online (Sandbox Code Playgroud)

dataframe julia

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

构造指定类型的一维数组时字符和字符串的区别

当我通过 usung 构造指定类型的一维数组时,我感到很困惑getindex(type[, elements...])

当然,当元素是Int时我可以转换Int 8

getindex(Int8, 1, 2)

2-element Vector{Int8}:
1
2
Run Code Online (Sandbox Code Playgroud)

即使元素是字符格式,我也可以将其转换为Int8

getindex(Int8, '1', '2')

2-element Vector{Int8}:
49
50
Run Code Online (Sandbox Code Playgroud)

但是,当元素为字符串格式时,我无法转换。

getindex(Int8, "1", "2")
Run Code Online (Sandbox Code Playgroud)

并且,引发以下错误:

MethodError: Cannot `convert` an object of type String to an object of type Int8
Closest candidates are:
  convert(::Type{T}, ::Ptr) where T<:Integer at pointer.jl:23
  convert(::Type{IT}, ::GeometryBasics.OffsetInteger) where IT<:Integer at C:\Users\Admin\.julia\packages\GeometryBasics\WMp6v\src\offsetintegers.jl:40
  convert(::Type{T}, ::SentinelArrays.ChainedVectorIndex) where T<:Union{Signed, Unsigned} at C:\Users\CARVI\.julia\packages\SentinelArrays\tV9lH\src\chainedvector.jl:209
  ...

Stacktrace:
 [1] setindex!(A::Vector{Int8}, x::String, i1::Int64)
   @ Base .\array.jl:839 …
Run Code Online (Sandbox Code Playgroud)

julia

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

如何获得 Julia 数据框中的第 n 个最大值?

我正在寻找一种解决方案来找出我的 Julia 数据框中的第 n大数据,类似于pd.Series.nlargest(n= 5, keep='first')Python 中的 。

更详细地说,假设我有 Julia 数据框,例如;

df = DataFrame(Data1 = rand(5), Data2 = rand(5));

    Data1       Data2
    Float64     Float64
1   0.125824    0.841358
2   0.612905    0.337965
3   0.210736    0.66849
4   0.172203    0.377226
5   0.898269    0.448477
Run Code Online (Sandbox Code Playgroud)

如何从列名Data1中获取第 n 个最大值?

如果n = 3,下面是我的预期输出。

5   0.898269
2   0.612905
3   0.210736
Run Code Online (Sandbox Code Playgroud)

dataframe julia

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

使用 Julia 数据框中的列名称控制流程

我正在寻找一种解决方案来处理 Julia 数据框中不存在列名的情况。

更详细地说,假设我有以下数据框和列表:

df = DataFrame(id= "12345", description= rand(5));
err_Li = ["12345"] 
Run Code Online (Sandbox Code Playgroud)

我需要检查id列是否匹配,err_Li例如:

if (df[1,"id"] in err_Li)
    println("NOT VALID")
else 
end
Run Code Online (Sandbox Code Playgroud)

但是,在我的一些数据框中,列名id不存在。所以在Python中,我可以处理try-except诸如:

try :
    if df['id'][0] in err_Li:
        print('err')
    else: pass

except : pass
Run Code Online (Sandbox Code Playgroud)

当 Julia 数据框中不存在列名或者 Python 中是否有等效函数时,如何控制流程try-except

dataframe julia

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

标签 统计

julia ×7

dataframe ×4

string ×2

encode ×1

format ×1

list ×1

python ×1