如何从CSV提取嵌套列并添加至DataFrame
问题解决:提取CSV嵌套键值对为DataFrame新列
需求说明
- 处理多列CSV文件,其中
labels_stats列存储嵌套键值对数据,格式示例:color=123,brightness=16,多组键值对以空格分隔,每组内键与值用逗号分隔 - 需要将这些嵌套的键值对提取为DataFrame的新列,新列命名规则为
键名+对应color值,比如color123、brightness123
此前问题
尝试过其他方案,但只能提取第一组color相关的属性,无法获取其他组的属性
可行代码实现
# 提取labels_stats列并扁平化处理 df1 = (df.pop('labels_stats').str.split().explode() .str.extractall(r'(?P<key>[^=]+)=(?P<val>[^,]+),?') .droplevel('match')) # 为键名添加对应的color数值后缀 df1['key'] += df1['val'].where(df1['key'] == 'color').ffill().astype(str) # 重塑数据结构,匹配原DataFrame的索引 df1 = df1.pivot_table(index=df1.index, columns='key', values='val', sort=False, aggfunc='first') # 合并原数据与新生成的列,得到最终结果 out = pd.concat([df, df1], axis=1)
内容的提问来源于stack exchange,提问作者Pdr
相关产品推荐
相关产品推荐

