python - pandas - 数据帧上的 lambda 函数 - 我使用不正确吗?
问题描述
所以我正在尝试将计算逐行应用于我的数据框
下面是我的代码,但它需要几个小时才能运行,有时甚至无法完成,我在这里做错了什么?
该代码应该在数据库的每一行上运行 FindLL 函数。
postcode_geo = []
with open (r'Desktop\Python Projects\Work - Transport Movement\open_postcode_geo.csv', 'r') as csvfile:
reader = csv.reader(csvfile)
for row in reader:
postcode_geo.append(row)
#function to find lat,lon of given postcode
postcode_geo_postcodes = [x[0] for x in postcode_geo]
def FindLL(postcode):
if postcode in postcode_geo_postcodes:
for x in range(0,len(postcode_geo)):
if postcode == postcode_geo[x][0]:
latitude = postcode_geo[x][7]
longitude = postcode_geo[x][8]
return f'{longitude},{latitude}'
else:
return "Postcode can't find longitude/latitude, please check format"
df = pd.read_excel(r'Desktop\Python Projects\Work - Transport Movement\Transport Movement P10\TransportMovementP10.xlsx')
df[f'Start Postcode LL'] = df.apply(lambda row: FindLL(row['ESP_START_LOCATION_POSTCODE']), axis = 1)
df[f'End Postcode LL'] = df.apply(lambda row: FindLL(row['ESP_END_LOCATION_POSTCODE']), axis = 1)
print(df)
所以数据框大约有 68,000 行数据和大约 22 列,但我只使用其中的 2 列
邮政编码地理文件大约有 120 万行
解决方案
推荐阅读
- reactjs - 如何使用 React Hooks 重写它?
- python - CatBoostError: cat_features 必须是整数或字符串,实数值和 NaN 值应转换为字符串
- spacy - 为什么 jupyter 无法显示位移结果?
- javascript - 如何计算对象数组中的数字
- forms - Delphi Anchor 和 Form.HorizontalScrollbar.Range Panel Anchor akRight 忽略 HorizontalScrollbar.Range
- php - 来自观察者 laravel 的访问表单请求
- spring-boot - 处理 Reactor 中的平行通量
- java - Spring Data JPA 查询、过滤?搜索引擎 ?JPQL?
- python - 使用python中的函数从系统中注销用户
- javascript - 如何从 base64 编码的字符串重建音频 blob?