我有一个坐标数据作为csv文件,我想用matplotlib绘制它。
我尝试使用的代码是,
import numpy as np
import pandas as pd
data_filename='coordinate_car.csv'
data = pd.read_csv(data_filename, parse_dates=['lati', 'long'],
encoding='cp1252')
data.columns
p_lng=data.long
p_lat=data.lati
def lat_lng_to_pixels(lat,lng):
lat_rad=lat*np.pi/180.0
lat_rad=np.log(np.tan((lat_rad+np.pi/2.0)/2.0))
x=100*(lng+180.0)/360.0
y=100*(lat_rad-np.pi)/(2.0*np.pi)
return(x,y)
px, py=lat_lng_to_pixels(p_lat,p_lng)
当我运行此代码时,我收到消息为
TypeError: can't multiply sequence by non-int of type 'float'
有人可以帮助我或让我知道如何处理这个问题吗?
谢谢!
我将整个错误代码添加为图片(两张图片)!
这是我想要使用的数据。
答案 0 :(得分:0)
您的['lati', 'long']
列似乎有object
dtype。
以下是重现此内容的代码:
In [23]: pd.Series(['11.1111','22.222']) * np.pi
...
skipped
...
TypeError: can't multiply sequence by non-int of type 'float'
解决方法:强>
In [28]: pd.to_numeric(pd.Series(['11.1111','22.222', 'a string']), errors='coerce') * np.pi
Out[28]:
0 34.906550
1 69.812472
2 NaN
dtype: float64