TypeError: frame_apply() got an unexpected keyword argument 'broadcast'
TypeError: frame_apply() got an unexpected keyword argument 'broadcast'
我正在使用 .loc 运行在 Pandas 数据集的每一行上设置一个函数。
dm.loc[:50, 'address_components'] = dm.loc[:50, ['description', 'city']].apply(lambda row: get_address(row[0], row[1]), axis=1)
下面是函数本身,尽管错误不适用于我传递的函数
def get_address(address, city):
geolocator = GoogleV3(api_key=api_key, domain='maps.googleapis.com', scheme=None, client_id=None,
secret_key=None,
user_agent=None)
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=0.0, swallow_exceptions=True, return_value_on_exception=None)
# cleanup address
address = address.strip(' ').strip(',')
full_addr = '{}, {}'.format(address, city)
#print(full_addr)
data = geocode(full_addr, timeout=None, exactly_one=True)
if data:
#print(data.raw)
return data.raw
return None
和回应
TypeError Traceback (most recent call last)
<ipython-input-77-46aa2724c2f6> in <module>
1
2
----> 3 dm.loc[:50, 'address_components'] = dm.loc[:50, ['description', 'city']].apply(lambda row: get_address(row[0], row[1]), axis=1)
~/virt_env/virt2/lib/python3.6/site-packages/pandas/core/frame.py in apply(self, func, axis, broadcast, raw, reduce, result_type, args, **kwds)
6909 result_type=result_type,
6910 args=args,
-> 6911 kwds=kwds,
6912 )
6913 return op.get_result()
TypeError: frame_apply() got an unexpected keyword argument 'broadcast'
这个错误是新出现的,因为函数 运行 之前没有问题,只有在我将 Pandas 更新到 1.0.4 后才开始抛出错误消息。但是,即使在我将 pandas 降级回 0.25.1 后它仍然存在。广播参数对我来说也没有意义。
我不能确定,但你似乎每次应用迭代时都分配给前 50 行,同时迭代每一行
dm.loc[:50, 'address_components'] =
应该是
dm["address_components"] = dm.loc[:50, ['description', 'city']].apply(lambda row: get_address(row[0], row[1]), axis=1)
原来真的是版本问题。降级回pandas0.25,重启内核又飞起来了!
我正在使用 .loc 运行在 Pandas 数据集的每一行上设置一个函数。
dm.loc[:50, 'address_components'] = dm.loc[:50, ['description', 'city']].apply(lambda row: get_address(row[0], row[1]), axis=1)
下面是函数本身,尽管错误不适用于我传递的函数
def get_address(address, city):
geolocator = GoogleV3(api_key=api_key, domain='maps.googleapis.com', scheme=None, client_id=None,
secret_key=None,
user_agent=None)
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=0.0, swallow_exceptions=True, return_value_on_exception=None)
# cleanup address
address = address.strip(' ').strip(',')
full_addr = '{}, {}'.format(address, city)
#print(full_addr)
data = geocode(full_addr, timeout=None, exactly_one=True)
if data:
#print(data.raw)
return data.raw
return None
和回应
TypeError Traceback (most recent call last)
<ipython-input-77-46aa2724c2f6> in <module>
1
2
----> 3 dm.loc[:50, 'address_components'] = dm.loc[:50, ['description', 'city']].apply(lambda row: get_address(row[0], row[1]), axis=1)
~/virt_env/virt2/lib/python3.6/site-packages/pandas/core/frame.py in apply(self, func, axis, broadcast, raw, reduce, result_type, args, **kwds)
6909 result_type=result_type,
6910 args=args,
-> 6911 kwds=kwds,
6912 )
6913 return op.get_result()
TypeError: frame_apply() got an unexpected keyword argument 'broadcast'
这个错误是新出现的,因为函数 运行 之前没有问题,只有在我将 Pandas 更新到 1.0.4 后才开始抛出错误消息。但是,即使在我将 pandas 降级回 0.25.1 后它仍然存在。广播参数对我来说也没有意义。
我不能确定,但你似乎每次应用迭代时都分配给前 50 行,同时迭代每一行
dm.loc[:50, 'address_components'] =
应该是
dm["address_components"] = dm.loc[:50, ['description', 'city']].apply(lambda row: get_address(row[0], row[1]), axis=1)
原来真的是版本问题。降级回pandas0.25,重启内核又飞起来了!