无法使用Python中的pandas系列将字符串转换为float

时间:2018-04-30 07:34:33

标签: python string pandas dataframe

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 :(得分:0)

显然,您的某些行没有有效的float数据,特别是某些行的文字lat无法转换为浮动

要删除NaN行,您可以使用dropna方法。

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

没有drop的另一种方法。

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

此外,您可以使用read_csv功能阅读文件。

df = pd.read_csv('Rawcomdata.csv')