簡體   English   中英

如何在 Pandas 中轉換浮點數中的負字符串?

[英]How to convert negative strings in float numbers in pandas?

我的數據集中有一系列否定字符串。 我想將它們轉換為負浮點數,但得到ValueError: could not convert string to float: '-' 我想有一個與enconding格式的問題,所以我試圖取代-與Unicode的-連字符,但得到了同樣的錯誤呢。

我試圖用普通的連字符替換所有可能的 Unicode 代碼,但它沒有用。

我使用 Python 3.8.1 和 Pandas 1.0.2。

有什么解決方法嗎?

PS有一個類似的問題在這里,但它並沒有幫助。

這是我所做的:數據集在這里 它被稱為'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='..')

然后我嘗試在“緯度”中轉換字符串。 列浮動數字。

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

問題是至少有一個'-'值。 就是這樣,只是一個連字符,后面沒有數字。

你可以這樣做:

import numpy as np

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

然后這將起作用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM