如何在pandas中转换浮点数中的负字符串?

2024-04-24 08:18:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我的数据集中有一系列负字符串。我想将它们转换为负浮点,但得到ValueError: could not convert string to float: '-'。我想编码格式有问题,所以我尝试用Unicode -连字符替换-,但还是出现了同样的错误

我尝试用普通连字符替换所有可能的Unicode代码,但没有成功

我使用Python 3.8.1和pandas 1.0.2

有什么解决办法吗

还有一个类似的问题,但没有帮助

以下是我所做的: 数据集为here。它叫“1240K+HO”,分机。anno

然后:

# open file
df = pd.read_table('v42.4.1240K_HO.anno', index_col=0, usecols=['Index', 
                                                                'Instance ID',
                                                                'Master ID', 
                                                                'Average of 95.4% date range in calBP (defined as 1950 CE)',
                                                                'Country',
                                                                'Lat.',
                                                                'Long.'],
                   na_values='..')

然后我尝试将“Lat.”列中的字符串转换为浮点数

# convert strings to floats
df['Lat.'] = df['Lat.'].astype(float)

Tags: to数据字符串idconvertdfunicodefloat
1条回答
网友
1楼 · 发布于 2024-04-24 08:18:42

问题是至少有一个'-'值。就是这样,只是一个连字符,后面没有数字

您可以这样做:

import numpy as np

df['Lat.'] = df['Lat.'].replace('-',np.nan)

那么这就行了:

df['Lat.'] = df['Lat.'].astype(float)

相关问题 更多 >