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

如何在Pandas列中按指定条件移除列表首元素

解决方案

可以通过自定义函数结合Pandas的apply方法实现需求,具体代码如下:

import pandas as pd

data = {'id':  ['001', '002', '003'],
        'address': [['William J. Clare', '290 Valley Dr.', 'Casper, WY 82604','USA, United States'],
                    ['1180 Shelard Tower', 'Minneapolis, MN 55426', 'USA, United States'],
                    ['William N. Barnard', '145 S. Durbin', 'Casper, WY 82601', 'USA, United States']]
        }

df = pd.DataFrame(data)

# 定义处理单个地址列表的函数
def clean_address(address_list):
    # 检查首元素是否包含数字
    has_digit = any(char.isdigit() for char in address_list[0])
    # 不含数字则移除首元素,否则保留原列表
    return address_list[1:] if not has_digit else address_list

# 批量处理address列
df['address'] = df['address'].apply(clean_address)

# 输出目标格式的结果
print(df['address'].tolist())

代码说明

  • clean_address函数:针对单个地址列表,遍历首元素的字符判断是否包含数字。如果不含数字(判定为姓名),就返回去掉首元素的子列表;如果包含数字则直接返回原列表。
  • df['address'].apply(clean_address):将自定义函数批量应用到address列的每一个元素上,完成所有地址的清洗。
  • tolist():把处理后的Pandas列转换成你需要的列表格式。

运行代码后会输出期望结果:

[['290 Valley Dr.', 'Casper, WY 82604','USA, United States'], ['1180 Shelard Tower', 'Minneapolis, MN 55426', 'USA, United States'], ['145 S. Durbin', 'Casper, WY 82601', 'USA, United States']]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 09:20:31