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

Aft*_*ray 4 dataframe 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)

Nil*_*dat 9

我可能会做以下事情:

\n
julia> using DataFrames\n\njulia> df = DataFrame(TIME = rand(5), MQ2 = rand(5), MQ3 = rand(5), MQ8 = rand(5));\n\njulia> rename!(df, lowercase.(names(df)))\n5\xc3\x974 DataFrame\n Row \xe2\x94\x82 time       mq2        mq3        mq8      \n     \xe2\x94\x82 Float64    Float64    Float64    Float64  \n\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\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\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\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\n   1 \xe2\x94\x82 0.0796718  0.997022   0.0838867  0.63886\n   2 \xe2\x94\x82 0.923035   0.904928   0.993185   0.36081\n   3 \xe2\x94\x82 0.392671   0.0577061  0.518647   0.81432\n   4 \xe2\x94\x82 0.0377552  0.506528   0.190017   0.488105\n   5 \xe2\x94\x82 0.828534   0.731297   0.383561   0.604786\n\n
Run Code Online (Sandbox Code Playgroud)\n

在这里,我DataFrames rename在其变异版本中使用该函数(因此 中的爆炸rename!),并使用新列名称的向量作为第二个参数。新向量是通过使用 获取当前名称names(df),然后lowercase在该向量中的每个元素上广播该函数来创建的。

\n

请注意,rename!如果您只想重命名特定列,则还接受旧/新名称对,例如rename!(df, "TIME" => "time")

\n

  • 如果我们试图在冗长程度上进行竞争,`rename!(lowercase, df)`就足够了:)。 (3认同)
  • 你用完全相同的解决方案比我快了 1 分钟;-) (2认同)
  • 朱莉娅·苏的回答变得越来越有竞争力:) (2认同)