如何将空DataFrame的Room #列强制转换为float类型?
解决方法
要强制将“Room #”列设置为float类型,有两种简单可行的方式:
方式一:转换后强制指定类型
在你现有代码的基础上,直接对转换后的结果调用astype(float),就能强制将列类型转为float:
columns = ['Time','Name','Company','Room #', 'etc'] df = pd.DataFrame(columns=columns) df["Room #"] = df["Room #"].apply(pd.to_numeric, errors='coerce').astype(float)
方式二:直接修改空列的类型
如果是空DataFrame,无需先做pd.to_numeric转换,直接对目标列调用astype(float)即可:
columns = ['Time','Name','Company','Room #', 'etc'] df = pd.DataFrame(columns=columns) df['Room #'] = df['Room #'].astype(float)
为什么之前的方法得到int64?
当处理空列时,pd.to_numeric会默认推断最紧凑的数据类型,空值场景下int64是优先选择的类型,所以需要显式用astype(float)强制转为float类型,后续填充数据时该列会保持float类型。
内容的提问来源于stack exchange,提问作者MaxRussell
相关产品推荐
相关产品推荐

