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

如何用Pandas读取Excel为DataFrame并拆分值为指定格式列表?

解决Pandas读取Excel后拆分列值并转换格式的问题

1. 读取Excel文件

先通过pandas.read_excel读取文件,建议添加keep_default_na=False避免空值被默认转换为NaN:

import pandas as pd

# 替换为你的Excel文件路径和工作表名
df = pd.read_excel("company_data.xlsx", sheet_name="Sheet1", keep_default_na=False)

2. 定义格式转换函数

针对不同列的需求,编写两个转换函数处理字符串拆分与类型转换:

def to_string_list(text):
    # 拆分逗号分隔的文本,去除元素前后空格,返回字符串列表
    return [item.strip() for item in text.split(",")]

def to_integer_list(text):
    # 拆分逗号分隔的文本,转换为整数后返回列表
    return [int(item.strip()) for item in text.split(",")]

3. 批量转换DataFrame列格式

将对应列应用转换函数,替换原列或生成目标格式的新列:

# 确保Company列为纯字符串格式
df["Company"] = df["Company"].astype(str)

# 转换搜索名称列为字符串列表
df["company_name_for_search"] = df["company_name_for_search"].apply(to_string_list)

# 转换注册号列为整数列表
df["company_register"] = df["company_register"].apply(to_integer_list)

4. 遍历提取变量执行搜索

现在可以直接遍历每行数据,提取指定格式的变量用于后续搜索逻辑:

for _, row in df.iterrows():
    # 提取目标变量
    company = row["Company"]
    name_search_list = row["company_name_for_search"]
    register_search_list = row["company_register"]
    
    # 遍历名称列表执行搜索
    for name in name_search_list:
        # 替换为你的数据库搜索逻辑
        print(f"搜索公司名称:{name}")
    
    # 遍历注册号列表执行搜索
    for reg_num in register_search_list:
        # 替换为你的数据库搜索逻辑
        print(f"搜索公司注册号:{reg_num}")

额外处理建议

  • 如果Excel中使用的是逗号以外的分隔符(如分号),将split(",")替换为对应分隔符即可
  • 若存在空值或非标准格式内容,可在转换函数中添加异常处理:
    def to_integer_list(text):
        if not text:
            return []
        try:
            return [int(item.strip()) for item in text.split(",")]
        except ValueError:
            print(f"无法转换为整数:{text}")
            return []
    

内容的提问来源于stack exchange,提问作者FábioRB

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 05:18:17