Julia DataFrames:如何高效批量转换字符串列的列名与数据为大写?
问题描述
现有如下DataFrame:
5×4 DataFrame Row │ Col_1 Col_2 Col_a Col_z │ Float64 Float64 String String ─────┼───────────────────────────────────── 1 │ 0.201256 0.418266 aabbcc xxyyzz 2 │ 0.804066 0.136453 aabbcc xxyyzz 3 │ 0.442338 0.305655 aabbcc xxyyzz 4 │ 0.0676846 0.113499 aabbcc xxyyzz 5 │ 0.380939 0.773559 aabbcc xxyyzz
需求:仅针对其中的String类型列,同时将列名和列内数据转换为大写,得到如下结果:
5×4 DataFrame Row │ Col_1 Col_2 COL_A COL_Z │ Float64 Float64 String String ─────┼───────────────────────────────────── 1 │ 0.201256 0.418266 AABBCC XXYYZZ 2 │ 0.804066 0.136453 AABBCC XXYYZZ 3 │ 0.442338 0.305655 AABBCC XXYYZZ 4 │ 0.0676846 0.113499 AABBCC XXYYZZ 5 │ 0.380939 0.773559 AABBCC XXYYZZ
解决方案
一行代码即可高效完成需求:
transform!(df, names(df, String) .=> ByRow(uppercase) .=> uppercase.(names(df, String)))
代码解释
names(df, String):筛选出DataFrame中所有类型为String的列名.=> ByRow(uppercase):对每个选中的列,逐行应用uppercase函数将字符串转为大写.=> uppercase.(names(df, String)):将原String类型列的列名转为大写,作为修改后的列名transform!:直接在原DataFrame上修改(若不想修改原数据,改用transform会返回新的DataFrame)
内容的提问来源于stack exchange,提问作者jn_br
相关产品推荐
相关产品推荐

