如何克服 TypeError: cannot convert the series to <class 'float'> 错误
Posted
技术标签:
【中文标题】如何克服 TypeError: cannot convert the series to <class \'float\'> 错误【英文标题】:How do I overcome the TypeError: cannot convert the series to <class 'float'> error如何克服 TypeError: cannot convert the series to <class 'float'> 错误 【发布时间】:2019-05-10 13:52:53 【问题描述】:我正在尝试计算我尝试使用此代码的多个(系列)航班的纬度和经度
import pandas as pd
from math import radians, cos, sin, asin, sqrt
# convert decimal degrees to radians
lon1 = df1['from_lon'].map(radians)
lat1 = df1['from_lat'].map(radians)
lon2 = df1['dest_lon'].map(radians)
lat2 = df1['dest_lat'].map(radians)
# haversine formula
dlon = lon2 - lon1
dlat = lat2 - lat1
a = sin(dlat/2)**2 + cos(lat1) * cos(lat2) * sin(dlon/2)**2
c = 2 * asin(sqrt(a))
results = 3959.0 * c
但我不断收到此错误
TypeError: cannot convert the series to <class 'float'>
我看到很多人在 *** 上询问这个错误,并尝试了提供给他们的答案。我尝试过以这种方式使用方程
a = dlat.divide(2).apply(sin).pow(2) + cos(lat1) * lat2.apply(cos).multiply(dlon.divide(2).apply(sin).pow(2))
我还尝试使用lambda
并尝试使用.astype(float)
将每个变量转换为浮点数,但不幸的是我没有任何效果。
lon1、lat1、lon2 和 lat2 的数据类型为float64
.数据样本:
lon1
-1.826892
-1.287685
-1.534229
-1.534229
-1.826892
1.775173
-0.062252
【问题讨论】:
显示一些数据和数据类型。 @mark 我已经在帖子中添加了您要求的内容。非常感谢 如果这是你想要的,你能试试这个代码看看输出吗? (对我来说没有错误,但不确定输出是否正确)a = (dlat/2).apply(lambda x : sin(x)) ** 2 + lat1.apply(lambda x : cos(x)) * lat2.apply(lambda x:cos(x))* (dlon/2).apply(lambda x : sin(x)) ** 2
c = 2 * a.apply(lambda x : asin(sqrt(x)))
results = 3959.0 * c
@Vishal 是的,非常感谢您的工作,非常感谢您
【参考方案1】:
以下是可以正常工作的代码。基本上你需要使用 Series.apply(lambda x: ) 函数。
a = (dlat/2).apply(lambda x : sin(x)) ** 2 + lat1.apply(lambda x : cos(x)) * lat2.apply(lambda x:cos(x))* (dlon/2).apply(lambda x : sin(x)) ** 2
c = 2 * a.apply(lambda x : asin(sqrt(x)))
results = 3959.0 * c
【讨论】:
以上是关于如何克服 TypeError: cannot convert the series to <class 'float'> 错误的主要内容,如果未能解决你的问题,请参考以下文章
如何克服 TypeError: unhashable type: 'list'
如何克服 TypeError: unhashable type: 'list'
TypeError: SuppressChunksPlugin is not a constructor,如何克服这是一个 webpack?
如何解决 TypeError: Cannot read property 'push' of undefined in simple node project?
我该如何解决这个错误 TypeError: Cannot read properties of null (reading 'indexOf') in my redux application
如何修复:React-Context - TypeError: Object is not iterable (cannot read property Symbol(Symbol.iterator)