如何在Python中拆分DataFrame的objectToBeSplit列至多个列?
拆分DataFrame中的objectToBeSplit列的方法
根据需求分两种场景处理:
场景1:objectToBeSplit是字符串类型
如果该列内容是类似"{0.223, 0.112, 0.441}"的字符串,可通过字符串清洗+拆分实现:
import pandas as pd # 构造示例数据 df = pd.DataFrame({ 'A': [1, 3], 'B': [2, 4], 'objectToBeSplit': ['{0.223, 0.112, 0.441}', '{0.423, 0.402, 0.593}'] }) # 移除首尾的{},按逗号+空格拆分,转为数值类型 split_data = df['objectToBeSplit'].str.strip('{}').str.split(', ', expand=True).astype(float) # 给新列命名 split_data.columns = ['C', 'D', 'E'] # 合并原列与拆分后的列 result = pd.concat([df[['A', 'B']], split_data], axis=1) print(result)
场景2:objectToBeSplit是集合(set)类型
如果该列存储的是Python集合对象,需先转为有序列表(集合本身无序,建议排序保证结果稳定),再展开为列:
import pandas as pd # 构造示例数据(列内容为集合) df = pd.DataFrame({ 'A': [1, 3], 'B': [2, 4], 'objectToBeSplit': [{0.223, 0.112, 0.441}, {0.423, 0.402, 0.593}] }) # 将集合转为排序后的列表,再展开为列 split_data = df['objectToBeSplit'].apply(lambda x: sorted(list(x))).apply(pd.Series).astype(float) split_data.columns = ['C', 'D', 'E'] # 合并列 result = pd.concat([df[['A', 'B']], split_data], axis=1) print(result)
注意事项
- 若处理集合类型数据,务必注意集合的无序性,使用
sorted()能确保拆分后各列的数值顺序固定,避免结果混乱。
内容的提问来源于stack exchange,提问作者Michael
相关产品推荐
相关产品推荐

