如何使用Python重构该DataFrame?
数据格式转换解决方案
你需要将初始数据集转换为目标形态,尝试str.split()未达预期。下面针对常见的字符串拆分场景给出可行方案:
场景1:简单分隔符的字符串拆分(如逗号、空格)
假设你的初始数据是类似这样的字符串列表:
raw_data = ["张三,25,北京", "李四,30,上海", "王五,28,广州"]
直接用str.split()会得到嵌套列表,要转成结构化数据可以这么做:
转成字典列表(便于后续处理)
processed_data = [] for item in raw_data: # 按逗号拆分,对应姓名、年龄、城市字段 name, age, city = item.split(',') processed_data.append({"姓名": name, "年龄": int(age), "城市": city}) print(processed_data)
用pandas转成表格(适合批量数据)
如果数据量较大,用pandas处理更高效:
import pandas as pd # 拆分后直接生成DataFrame df = pd.DataFrame([x.split(',') for x in raw_data], columns=["姓名", "年龄", "城市"]) # 将年龄转为数值类型 df["年龄"] = df["年龄"].astype(int) print(df)
场景2:复杂/不规则分隔符
如果初始数据的分隔符不统一(比如混合空格、逗号、制表符),用正则表达式拆分更靠谱:
import re raw_data = ["张三 25 北京", "李四,30 上海", "王五 28,广州"] processed_data = [] for item in raw_data: # 匹配任意数量的空格或逗号作为分隔符 parts = re.split(r'[\s,]+', item.strip()) processed_data.append({"姓名": parts[0], "年龄": int(parts[1]), "城市": parts[2]}) print(processed_data)
如果你的实际数据格式和上述示例不同,补充具体的初始数据样例,能帮你调整出更精准的代码。
内容的提问来源于stack exchange,提问作者Terica272020
相关产品推荐
相关产品推荐

