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

Python Pandas如何将单元格内多个取值拆分生成独立新行

解决方案

你可以用pandas内置的explode方法实现行列转换,全程只需链式调用3步即可完成:

import pandas as pd

# 初始化原始df
df = pd.DataFrame({'zips': ['11229 11226 11225', '90291 90293 90292'],
                  'lat': [40.6943, 34.1139],
                  'lng': [-73.9249, -118.4068]})

# 转换得到目标df2
df2 = (
    # 第一步:将zips列的空格分隔字符串拆分为列表
    df.assign(zips=df['zips'].str.split())
    # 第二步:将列表的每个元素拆分为单独行,同时自动对齐lat、lng列的值,重置索引
    .explode('zips', ignore_index=True)
    # 第三步:将zips从字符串格式转为整数格式
    .astype({'zips': int})
)

低版本pandas兼容方案

如果你的pandas版本低于0.25(无explode方法),可以用如下代码实现相同效果:

df2 = (
    df.set_index(['lat', 'lng'])['zips']
    # 拆分字符串后扩展为多列
    .str.split(expand=True)
    # 列转行
    .stack()
    .reset_index(name='zips')
    # 删除多余的索引列
    .drop('level_2', axis=1)
    .astype({'zips': int})
    .reset_index(drop=True)
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 13:54:03