You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Pandas拆分清洗单列DataFrame为多列结构化数据

解决方案

步骤1:将单列数据按3行一组重组为三列

你的原始数据是每3行对应一条完整的商品记录(价格、运费、产地),先把单列数据重新排列成三列结构:

import pandas as pd

# 模拟原始数据(实际使用时替换为你的DataFrame)
data = ["$ 145", "+ 22.34", "From USA", "$ 200", "+ 15.50", "From Canada"]
df = pd.DataFrame({'Price': data})

# 每3行一组重组为三列
grouped_data = df['Price'].values.reshape(-1, 3)
new_df = pd.DataFrame(grouped_data, columns=['Price', 'Shipping', 'Origin'])

步骤2:清洗Price和Shipping列并转为数值类型

用正则提取数字部分,去除所有非数字(小数点除外)的特殊字符,再转为数值类型:

# 清洗Price列,提取数字并转为float
new_df['Price'] = new_df['Price'].str.extract(r'(\d+\.?\d*)').astype(float)

# 清洗Shipping列,提取数字并转为float
new_df['Shipping'] = new_df['Shipping'].str.extract(r'(\d+\.?\d*)').astype(float)

最终效果

处理后的DataFrame完全符合你的需求,可直接导出CSV用于分析:

PriceShippingOrigin
145.022.34From USA
200.015.50From Canada

补充说明

如果原始Price字段存在$ C145这类含多余字母的情况,上述正则依然有效,会自动忽略字母、$、+、空格等特殊字符,只提取数字部分。导出CSV只需执行:

new_df.to_csv('price_analysis.csv', index=False)

内容的提问来源于stack exchange,提问作者Rashid

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 22:15:54