帮我用python生成一段代码,源数据路径:C:\Users\Administrator\Desktop\经纬度.xlsx.该源数据第一列是“许可证号码”,第二列是“连锁性质”,第三列是“经度”,第四列是“纬度”。代码的内容:找到所有的“连锁性质”为“直营”或是“加盟”的经纬度坐标,然后计算每一组经纬度离与它最近的“直营”或是“加盟”的经纬度坐标的距离,把该距离写在源数据的第五列,文件保存在C:\Users\Administrator\Desktop\经纬度距离计算.xlsx
时间: 2023-05-17 17:06:24 浏览: 49
数据源:某购物中心三年销售数据.xlsx
以下是生成代码的Python代码:
```python
import pandas as pd
from geopy.distance import geodesic
# 读取源数据
df = pd.read_excel(r'C:\Users\Administrator\Desktop\经纬度.xlsx')
# 筛选出“直营”或“加盟”的数据
df = df[df['连锁性质'].isin(['直营', '加盟'])]
# 计算每组经纬度与最近的“直营”或“加盟”的距离
def calc_distance(row):
lat1, lon1 = row['纬度'], row['经度']
lat2, lon2 = df.loc[df['连锁性质'] == row['连锁性质'], ['纬度', '经度']].values[0]
return geodesic((lat1, lon1), (lat2, lon2)).km
df['距离'] = df.apply(calc_distance, axis=1)
# 保存结果
df.to_excel(r'C:\Users\Administrator\Desktop\经纬度距离计算.xlsx', index=False)
```
请注意,这段代码需要安装 pandas 和 geopy 库。如果您的电脑上没有安装这些库,请先使用 pip 安装它们。
阅读全文