【问题标题】:TypeError: float() argument must be a string or a number, not 'method'TypeError:float() 参数必须是字符串或数字,而不是“方法”
【发布时间】:2017-04-24 04:19:35
【问题描述】:

我正在尝试将纬度和经度转换为大约 10k 个数据点的邮政编码。我正在使用地理编码器来完成这项任务。

lat = subsamp['Latitude'].as_matrix
long = subsamp['Longitude'].as_matrix

g = geocoder.google([lat, long], method='reverse')

zip = g.postal

但是,在执行地理编码器时出现错误:

TypeError: float() 参数必须是字符串或数字,而不是“方法”

我尝试使用 Pandas 系列然后使用 Numpy 数组运行它,但不起作用。

【问题讨论】:

  • zip 是内置函数,千万不要这样做,重命名为zip_code 什么的

标签: python numpy google-geocoder


【解决方案1】:

.as_matrix 缺少括号问题, pandas.DataFrame.as_matrix,是一种方法 用于将帧转换为其 Numpy 数组表示。

由于它是一个函数,所以你错过了(),你没有添加()函数括号,用于.as_matrix

lat = subsamp['Latitude'].as_matrix
long = subsamp['Longitude'].as_matrix

应该是这样的:

lat = subsamp['Latitude'].as_matrix()
long = subsamp['Longitude'].as_matrix()

【讨论】:

    【解决方案2】:

    zip 是一个数字或字符串,但您已为该值分配了一个函数。 zip = g.postal -> zip = g.postal()

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-21
      • 2017-08-29
      • 2019-07-07
      相关资源
      最近更新 更多