DataFrame新增行及global变量的使用

发布时间 2023-08-12 18:09:59作者: liushao-AI

Global变量

在函数体或类外定义的变量,若想在函数体或类中使用,必须先声明使用的是体外global变量,声明格式:global 变量名

 
import pandas as pd
import numpy as np
import math
 
#global变量
df_result=pd.DataFrame(columns=['LABELS','DISTANCE'])
 
#计算距离
def dist(x):
    # 计算两点经纬度的火星坐标系距离
    global df_result #使用全局变量
    pa=[0,0]
    pb=[0,0]
    pa[0]=x["LNG"]
    pa[1]=x["LAT"]
    pb[0]=x["LNG_LAST"]
    pb[1]=x["LAT_LAST"]
    label=x["LABELS"]
    
    #计算pa、pb之间经纬度距离
    b =math.pi/ 180
    c =math.sin((float(pb[1]) - float(pa[1])) * b / 2)
    d =math.sin((float(pb[0]) - float(pa[0])) * b / 2)
    a = c * c + d * d * math.cos(float(pa[1]) * b) * math.cos(float(pb[1]) * b)
    dis=int(12756274 * math.atan2(math.sqrt(a), math.sqrt(1 - a)))
    tmp=pd.DataFrame({"LABELS":label,
                      "DISTANCE":dis},index=[0])
 
    #向DataFrame对象新增行
    df_result=df_result.append(tmp,ignore_index=True)