R语言:基于行值字符串批量修改DataFrame列名
解决方案
可以通过Pandas的批量字符串拆分操作实现,无需手动处理每一列,步骤如下:
- 批量拆分键值对:对整个DataFrame的每一列执行字符串拆分,按
=分割成键和值两部分 - 提取新列名:由于每列所有行的键一致,直接取第一行的键作为新列名
- 提取数据并重构DataFrame:提取拆分后的值部分,重新设置列名,可选转换数据类型
代码实现
import pandas as pd # 假设df是已读取的原始DataFrame split_result = df.apply(lambda col: col.str.split('=', expand=True)) # 获取新列名:从每个原列拆分后的第一行取键(索引0的位置) new_col_names = split_result.iloc[0, ::2].tolist() # 提取所有值部分(拆分后的第二列,索引1的位置),并设置新列名 processed_df = split_result.iloc[:, 1::2] processed_df.columns = new_col_names # 可选:将字符串类型的数值转为数值类型(根据实际数据调整) processed_df = processed_df.apply(pd.to_numeric)
说明
- 该方法自动处理所有列,不管列数多少都适用
split_result.iloc[:, ::2]取所有拆分后的键列,iloc[:, 1::2]取所有值列,利用步长索引批量选择- 如果部分列的格式不是
key=value,可以先过滤或单独处理,但根据问题描述所有列格式统一,无需额外处理
内容的提问来源于stack exchange,提问作者SeaNileCroc
相关产品推荐
相关产品推荐

