Не удалось преобразовать строку в число с плавающей точкой в ​​Python - PullRequest
0 голосов
/ 30 апреля 2018
lat=[]
lon=[]
with open("Rawcomdata.log") as fin: # Input file
    for line in fin:
        if '$GPRMC' in line: # check message from input line
           data=line.split(',')
           lat.append(data[1])  # extract data and store in buffer
           lon.append(data[3])

import pandas as pd
import numpy as np


df=pd.DataFrame({'lat':lat})
df['lat']=pd.to_numeric(df['lat'], errors='coerce')
df['lat'].fillna(0,inplace=True)
df.to_csv('test.csv')

Цель

Как преобразовать список в фрейм данных с другим заголовком, если список имеет формат строки строки

# Ввод

$GPRMC,134101.25,A,1256.99918,N,07738.00030,E,0.008,159.76,070316,,,A,V*1A
    $GPGSA,A,3,01,02,07,08,10,31,13,30,26,28,,,1.64,0.77,1.44,1*1D
    $GPRMC,,V,,,,,,,,,,N,V*29
    ....................

1 Ответ

0 голосов
/ 30 апреля 2018

Очевидно, что некоторые из ваших строк не имеют действительных данных float, в частности, некоторые строки имеют текст lat, который не может быть преобразован в float .

Для удаления NaN строк вы можете использовать метод dropna .

df = df.dropna(axis=0, how='all')

Другой метод без drop.

df = df[np.isfinite(df['lat'])]

Также вы можете прочитать свой файл, используя функцию read_csv.

df = pd.read_csv('Rawcomdata.csv')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...