我正在寻找将列标题更改为小写的解决方案。
比方说,我有这个数据框:
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)
我可能会做以下事情:
\njulia> 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\nRun Code Online (Sandbox Code Playgroud)\n在这里,我DataFrames rename在其变异版本中使用该函数(因此 中的爆炸rename!),并使用新列名称的向量作为第二个参数。新向量是通过使用 获取当前名称names(df),然后lowercase在该向量中的每个元素上广播该函数来创建的。
请注意,rename!如果您只想重命名特定列,则还接受旧/新名称对,例如rename!(df, "TIME" => "time")