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

如何解决含None的数组导入Pandas列后转为浮点数的问题?

解决方法

pandas默认整数类型不支持缺失值,当数组包含None(会被转为NaN)时,列会自动转为浮点类型。要实现你需要的整数+NaN显示效果,可采用以下方案:

方案1:创建DataFrame时指定可空整数类型

直接在创建阶段指定列类型为pd.Int64Dtype(),该类型同时支持整数和缺失值:

import pandas as pd

the_array = [None, None, None, 101, 555, 756, 924, 485]
df = pd.DataFrame({'request': the_array}, dtype=pd.Int64Dtype())
# 若需要将<NA>替换为NaN显示
df['request'] = df['request'].astype(object).replace(pd.NA, float('nan'))
print(df)

输出:

request
0      NaN
1      NaN
2      NaN
3      101
4      555
5      756
6      924
7      485

方案2:对已有DataFrame转换类型

如果已经创建了DataFrame,可直接转换列类型:

import pandas as pd

the_array = [None, None, None, 101, 555, 756, 924, 485]
df = pd.DataFrame(columns=['request'])
df['request'] = the_array

# 转换为可空整数类型
df['request'] = df['request'].astype(pd.Int64Dtype())
# 替换<NA>为NaN
df['request'] = df['request'].astype(object).replace(pd.NA, float('nan'))
print(df)

输出与需求完全一致。

关键点说明

  • 普通int类型无法兼容缺失值,强制转换会报错,必须使用pandas提供的可空整数类型(pd.Int64Dtype())。
  • 该特性要求pandas版本≥0.24,若版本过低需先升级。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 04:01:00