Pandas 为数据帧列赋值
在下面的代码中,没有填充数据帧df5。我只是将值分配给dataframe的列,并且我已经预先指定了该列。当我打印数据帧时,它返回一个空数据帧。不确定我是否遗漏了什么 任何帮助都将不胜感激Pandas 为数据帧列赋值,pandas,dataframe,Pandas,Dataframe,在下面的代码中,没有填充数据帧df5。我只是将值分配给dataframe的列,并且我已经预先指定了该列。当我打印数据帧时,它返回一个空数据帧。不确定我是否遗漏了什么 任何帮助都将不胜感激 import math import pandas as pd columns = ['ClosestLat','ClosestLong'] df5 = pd.DataFrame(columns=columns) def distance(pt1, pt2): return math.sqrt
import math
import pandas as pd
columns = ['ClosestLat','ClosestLong']
df5 = pd.DataFrame(columns=columns)
def distance(pt1, pt2):
return math.sqrt((pt1[0] - pt2[0])**2 + (pt1[1] - pt2[1])**2)
for pt1 in df1:
closestPoints = [pt1, df2[0]]
for pt2 in df2:
if distance(pt1, pt2) < distance(closestPoints[0], closestPoints[1]):
closestPoints = [pt1, pt2]
df5['ClosestLat'] = closestPoints[1][0]
df5['ClosestLat'] = closestPoints[1][0]
df5['ClosestLong'] = closestPoints[1][1]
print ("Point: " + str(closestPoints[0]) + " is closest to " + str(closestPoints[1]))
导入数学
作为pd进口熊猫
列=['ClosestLat','ClosestLong']
df5=pd.DataFrame(列=列)
def距离(pt1、pt2):
返回math.sqrt((pt1[0]-pt2[0])**2+(pt1[1]-pt2[1])**2)
对于df1中的pt1:
closestPoints=[pt1,df2[0]]
对于df2中的pt2:
如果距离(pt1,pt2)
从代码的外观来看,您试图用纬度和经度列表填充df5
。然而,你犯了几个错误
df5['ClosestLat']=closestPoints[1][0]
尝试为整个列指定一个数值,结果是一个空列import math
import pandas as pd
columns = ['ClosestLat','ClosestLong']
df5 = pd.DataFrame(columns=columns)
def distance(pt1, pt2):
return math.sqrt((pt1[0] - pt2[0])**2 + (pt1[1] - pt2[1])**2)
lats, lngs = [], []
for pt1 in df1:
closestPoints = [pt1, df2[0]]
for pt2 in df2:
if distance(pt1, pt2) < distance(closestPoints[0], closestPoints[1]):
closestPoints = [pt1, pt2]
lats.append(closestPoints[1][0])
lngs.append(closestPoints[1][1])
df['ClosestLat'] = pd.Series(lats)
df['ClosestLong'] = pd.Series(lngs)
导入数学
作为pd进口熊猫
列=['ClosestLat','ClosestLong']
df5=pd.DataFrame(列=列)
def距离(pt1、pt2):
返回math.sqrt((pt1[0]-pt2[0])**2+(pt1[1]-pt2[1])**2)
lats,lngs=[],[]
对于df1中的pt1:
closestPoints=[pt1,df2[0]]
对于df2中的pt2:
如果距离(pt1,pt2)
请定义df1和df2。