用于按距离将聚合列表创建到预定义字典中的 Python 代码

如何解决用于按距离将聚合列表创建到预定义字典中的 Python 代码

希望有人能帮帮我。

我试图回收我的一些用于距离计算的旧代码,这些代码通常只会返回数值,并且对于样本和人口子集非常有效 - 但现在太大而无法管理。我试图找到一种方法将输出更改为列表而不是矩阵。

数据帧示例 (Market_latLong)。在此示例中,经纬度已转换为弧度:

TAX_ID 纬度
0 A1 0.592957 -2.063824
1 A2 0.651901 -2.128469
2 A3 0.629707 -2.008770
3 A4 0.827849 -2.125870
4 A5 0.794262 -2.141358

我使用半正弦来做数学魔术,通常会返回一个矩阵,其中每个点与另一个点的接近程度。

dist = DistanceMetric.get_metric('haversine')

但是当您进入 40k 行数时 - 我实际上无法保存该数据帧以与任何人共享,因为矩阵最终为 40k x 40k。所以我想建立一个字典来获取唯一的TAX ID作为关键。这样做的全部目的是与需要它作为 csv 的人分享。

client_dict = {}

selected_rows = Market_latLong.get(['TAX_ID','Lat','Long']) #grabbing what is necessary - that's all in this upload but others have more columns 

for index,row in selected_rows.iterrows():
  T_ID = row['TAX_ID'] #ID is the key now 
  if T_ID in client_dict: 
    client_dict[T_ID].append(row) #append that data to that key 
  else: 
    client_dict[T_ID] = [row] 

现在这就是我挣扎的地方。在这里,我成对调用下面的半正弦方法 (dist) 来制作该矩阵,然后从该矩阵中,我想创建一个与每个键关联的列表,其中 ID 位于该初始 ID 的 100 英里范围内:

output = []

for T_ID in client_dict.keys():
  client_df = pd.DataFrame(client_dict[T_ID]) #client dict with the key of all the IDs
  clients_matrix = pd.DataFrame(dist.pairwise(client_df[['Lat','Long']].to_numpy())*6373,columns=client_df.TAX_ID.unique(),index=client_df.TAX_ID.unique()) #This is the matrix
  result = ??????????????????????????????
  output.append([T_ID,result])

pd.DataFrame(output)

所以结果变量是我一直在努力修复的地方,因为我不断破坏事物并且没有让它按预期工作。我能得到一些帮助吗?感谢您的帮助!

理想情况下,输出的样子是关键是 ID,列表是距离他们 100 英里范围内的每个人:

A1:A2、A5、A6、A9

A2:A3、A4、A10、A14、A18、A19、A55、A66、A123、A321

A3:A15、A12

A4:A989、A113、A1414、A1462、A14556

解决方法

查看本课程,它将帮助您了解所需的技巧

list1=[1,2,3,4]
list2=[]
for i in list1:
    list2.append(i*2)
def multiple(j):
    return j*2
print(list2)
print(list(map(multiple,list1)))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


依赖报错 idea导入项目后依赖报错,解决方案:https://blog.csdn.net/weixin_42420249/article/details/81191861 依赖版本报错:更换其他版本 无法下载依赖可参考:https://blog.csdn.net/weixin_42628809/a
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下 2021-12-03 13:33:33.927 ERROR 7228 [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPL
错误1:gradle项目控制台输出为乱码 # 解决方案:https://blog.csdn.net/weixin_43501566/article/details/112482302 # 在gradle-wrapper.properties 添加以下内容 org.gradle.jvmargs=-Df
错误还原:在查询的过程中,传入的workType为0时,该条件不起作用 <select id="xxx"> SELECT di.id, di.name, di.work_type, di.updated... <where> <if test=&qu
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct redisServer’没有名为‘server_cpulist’的成员 redisSetCpuAffinity(server.server_cpulist); ^ server.c: 在函数‘hasActiveC
解决方案1 1、改项目中.idea/workspace.xml配置文件,增加dynamic.classpath参数 2、搜索PropertiesComponent,添加如下 <property name="dynamic.classpath" value="tru
删除根组件app.vue中的默认代码后报错:Module Error (from ./node_modules/eslint-loader/index.js): 解决方案:关闭ESlint代码检测,在项目根目录创建vue.config.js,在文件中添加 module.exports = { lin
查看spark默认的python版本 [root@master day27]# pyspark /home/software/spark-2.3.4-bin-hadoop2.7/conf/spark-env.sh: line 2: /usr/local/hadoop/bin/hadoop: No s
使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-