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

如何在Pandas中处理以'-'为NULL值的CSV并转换为int类型

解决方案

方法1:读取CSV时直接识别空值

读取文件时通过na_values参数指定'-'为缺失值标记,pandas会自动将其转为NaN,之后直接转换为支持空值的整数类型Int64(大写I,区别于原生int)即可:

import pandas as pd

df = pd.read_csv('data.csv', na_values='-')
df['Column B'] = df['Column B'].astype('Int64')

方法2:读取后替换空值再转换

如果已经完成文件读取,可先将单独的'-'替换为NaN,再转换类型:

import pandas as pd
import numpy as np

df = pd.read_csv('data.csv')
df['Column B'] = df['Column B'].replace('-', np.nan)
df['Column B'] = df['Column B'].astype('Int64')

关键说明

  • 选用Int64而非原生int的原因:原生int无法存储缺失值(NaN),而Int64是pandas的可空整数类型,允许列中同时存在整数和缺失值。
  • 该处理不会影响原有负数(如-1472525)的取值,仅会识别单独的'-'为空值,带数字的负数会正常保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 16:20:27