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

如何在Pandas中使用split方法且不丢失分割关键字数据?

保留分割关键字'g'的DataFrame列拆分方法

原始数据

df
        col1
0  100g strawberry
1     800g apple
2      904g melon

原问题

使用以下代码拆分时,会丢失分隔符'g':

df[['col2']] = pd.DataFrame(df.col1.str.split('g', expand=True))

得到的结果不符合需求:

df
  col1        col2
0  100  strawberry
1  800     apple
2  904      melon

需要得到的目标结果:

df
  col1          col2
0  100  g strawberry
1  800     g apple
2  904      g melon

解决方案

方法1:正则提取(推荐,精准可控)

使用str.extract配合正则表达式,直接提取数字部分和带'g'的后缀部分:

import pandas as pd

# 原始数据
df = pd.DataFrame({
    'col1': ['100g strawberry', '800g apple', '904g melon']
})

# 正则提取拆分
df[['col1', 'col2']] = df['col1'].str.extract(r'(\d+)(g .+)', expand=True)

正则说明:

  • (\d+):匹配连续的数字字符,作为新的col1
  • (g .+):匹配以'g '开头的后续所有内容,作为col2

方法2:拆分后拼接'g'

如果不想用正则,可以先拆分再手动把'g'加回到col2中:

import pandas as pd

df = pd.DataFrame({
    'col1': ['100g strawberry', '800g apple', '904g melon']
})

# 按'g'拆分,只拆1次
split_data = df['col1'].str.split('g', n=1, expand=True)
# 重新赋值列
df['col1'] = split_data[0]
df['col2'] = 'g ' + split_data[1]

最终结果

两种方法运行后都能得到目标数据表:

df
  col1          col2
0  100  g strawberry
1  800     g apple
2  904      g melon

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 08:02:02