如何使用Pandas将包含多对象的单列拆分为各对象对应的独立列
Pandas逗号分隔单列拆分为多列操作方案
两种常见场景的处理方法如下:
- 场景一:还未将原始文件加载进DataFrame
这是处理成本最低的场景,直接在读取文件时指定逗号为分隔符即可,示例代码:
读取完成后直接得到带import pandas as pd # 基础读取,自动按逗号拆分多列 df = pd.read_csv("你的本地文件路径", sep=",") # 如果列名/字段前后有多余空格(比如示例里orange前面的空格),加参数自动清除 df = pd.read_csv("你的本地文件路径", sep=",", skipinitialspace=True)months/banana/orange/weight4个数据列的DataFrame,加上默认的行索引总共5列,符合你要的效果。 - 场景二:已经把数据加载进DataFrame,所有内容都存在单列中
假设存储合并内容的列名为raw_data,用字符串拆分方法处理即可:# 按逗号拆分单列,扩展为多列 split_cols = df["raw_data"].str.split(",", expand=True) # 自定义设置列名 split_cols.columns = ["months", "banana", "orange", "weight"] # 清除所有字符串字段前后的多余空格 split_cols = split_cols.apply(lambda x: x.str.strip() if x.dtype == "object" else x) # 可选:将水果销量、重量列转换为数值类型 split_cols[["banana", "orange", "weight"]] = split_cols[["banana", "orange", "weight"]].astype(int) # 如果要保留原DataFrame的其他字段,用concat合并即可 final_df = pd.concat([df.drop("raw_data", axis=1), split_cols], axis=1)
内容的提问来源于stack exchange,提问作者AnswerNeur
相关产品推荐
相关产品推荐

