此问题已在此处有答案:
How can I cast a Pandas string column to the new nullable Int64 type?(4个答案)
15小时前关门了。
我在Opensearch索引中有如下数据:
文件1:单位:“10”
文档2:单位:““
文件3:单位:“20”
在lambda中,我使用pandas进行数据转换。在最后的响应中,我希望像下面这样的输出将““转换为null,并将字符串值转换为整数:文件1:单位:10
文件2:单位:空
文件三:单位:20
我尝试了astype,但它给我的错误,如:无法将非有限值NA转换为整数。
1条答案
按热度按时间aiazj4mn1#
你可以使用以下代码:
这将用missing(
np.nan
)替换所有的" "
,并将剩余的字符串转换为浮点数(假设它们都只包含数字字符)。在pandas中,你不能直接在同一列中表示NaN和整数,所以floats是最好的选择:http://pandas.pydata.org/pandas-docs/stable/user_guide/gotchas.html#support-for-integer-na
输出量:
| | 单位| units |
| --|--|--|
| 0 | 1 |10.0|
| 1 | 2 |楠|
| 2 | 3 |20.0|
如果您确实希望列为整数类型,则可以使用pandas或pyarrow提供的可空整数扩展dtypes之一
| | 单位| units |
| --|--|--|
| 0 | 1 | 10 |
| 1 | 2 |楠|
| 2 | 3 | 20 |