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

如何让Pandas tolist()返回不同数据类型(int与double)?

解决DataFrame转列表时单独指定列类型的问题

这个问题我碰到过好几次了,其实不用纠结astype()同时作用两列的限制,我们可以针对性地单独处理每一列的类型,给你几个实用的方案:

方案1:逐行提取并单独转换类型(最直观)

直接定位到目标行,分别对date列做int转换,LTP保持原类型,再组合成列表:

# 提取第一行数据
target_row = df.iloc[0]
# 分别处理类型后组合成你要的列表格式
result = [[int(target_row['date']), target_row['LTP']]]

这样得到的结果就是[[1472688000000, -0.7222783810000001]],完美符合你的需求。

方案2:用apply逐行处理(适合批量多行)

如果需要处理多行数据,用apply配合lambda函数可以批量完成列类型的单独转换:

# 处理前N行(这里是前1行),axis=1表示按行处理
result = df[['date','LTP']].iloc[0:1].apply(
    lambda row: [int(row['date']), row['LTP']],
    axis=1
).tolist()

这个方法的好处是不用修改原DataFrame,直接生成目标格式的列表。

方案3:临时修改单列类型(适合需要重复使用转换后数据的场景)

如果你之后还需要用到转换后的date列数据,可以先创建一个临时DataFrame,单独修改date的类型,再转列表:

# 复制目标列到临时DataFrame,避免修改原数据
temp_df = df[['date','LTP']].copy()
# 只修改date列为int类型
temp_df['date'] = temp_df['date'].astype(int)
# 转成列表
result = temp_df.iloc[0:1].values.tolist()

这几个方案都能解决你的问题,根据自己的实际场景选就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:52:57