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

如何将DataFrame中String列转换为Int列表与String列表

解决方法:将DataFrame列转换为指定类型的List

从你的df.schema输出来看,这应该是一个Spark DataFrame~ 下面我分别给出Spark和Pandas两种常见场景的实现方案,按需取用:

一、Spark DataFrame场景

你的列b当前是StringType,需要先把每个元素转成整数再收集成List;列d本身就是StringType,直接收集即可:

  1. 转换列b为Int类型的List
from pyspark.sql import functions as F

# 先用cast将字符串转成整数,再用collect_list收集为列表
b_int_list = df.select(F.collect_list(F.col("b").cast("integer")).alias("b_int")).first()["b_int"]

如果b列存在无法转换为整数的字符串(比如字母、特殊符号),可以用try_cast替代cast,转换失败的元素会变成Null,避免程序报错:

b_int_list = df.select(F.collect_list(F.try_cast("b", "integer")).alias("b_int")).first()["b_int"]
  1. 转换列d为String类型的List
# d列本身已是StringType,直接用collect_list收集即可
d_str_list = df.select(F.collect_list(F.col("d")).alias("d_str")).first()["d_str"]

二、Pandas DataFrame场景

如果是Pandas DataFrame的话操作更简洁,直接提取列后转换类型再转成List:

  1. 转换列b为Int类型的List
# astype(int)将字符串列转为整数类型,tolist()把Series转成列表
b_int_list = df["b"].astype(int).tolist()
  1. 转换列d为String类型的List
# 确保转为字符串类型后再转列表(即使d已是字符串,这一步也能避免潜在类型问题)
d_str_list = df["d"].astype(str).tolist()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 09:35:32