为数据框列分配值

用户名

在下面的代码中,未填充数据帧df5。我只是将值分配给dataframe的列,并且我已经预先指定了该列。当我打印数据框时,它返回一个空的数据框。不知道我是否想念一些东西。

任何帮助,将不胜感激。

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]))
bpachev

从代码的外观来看,您试图填充df5纬度和经度的列表。但是,您犯了一些错误。

  1. 大熊猫数据框的列是Series,并保存某种类型的顺序数据。因此,df5['ClosestLat'] = closestPoints[1][0]尝试为整个列分配单个数值,并导致一个空列。
  2. 即使数据框没有忽略您为该列分配实数的尝试,您也会丢失数据,因为每次循环都会覆盖该列。

解决方案:建立经度和纬度的列表,然后插入数据框。

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)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

为数据框列分配值

来自分类Dev

根据不同的列值为数据框中的列分配值

来自分类Dev

概率分配数据框列值

来自分类Dev

从列表列表中提取元素,并将其分配为pandas数据框列中的值

来自分类Dev

为数据框中特定列中的文本分配值

来自分类Dev

如何根据熊猫中的条件为数据框的子集的列分配值?

来自分类Dev

在R中为数据框中的列重新分配值的更智能方法

来自分类Dev

通过将值分配为pandas数据框中的列来对数据框中的行进行分组

来自分类Dev

为列pandas数据框分配唯一的ID

来自分类Dev

Pandas数据框:列值为列表的列值总和

来自分类Dev

在两个数据框的列相等的情况下,分配数据框的列值

来自分类Dev

无法为非连续数据列分配范围联合的值

来自分类Dev

R:为数据分配值

来自分类Dev

为数据分配值属性

来自分类Dev

从数据框中删除值为零的列

来自分类Dev

将数据框列值编辑为某种格式

来自分类Dev

为列分配值-xmltable

来自分类Dev

为20个重复和2次处理中的列的最小值分配一个数据框的子集

来自分类Dev

如何在同一Pandas数据框中为另一列的唯一字符串值分配1000、1000 + 1

来自分类Dev

为每个熊猫数据框单元格的字符串列表分配唯一值

来自分类Dev

为数据框行分配1个随机值-需要帮助

来自分类Dev

在熊猫中为数据框单元格分配值时出现问题

来自分类Dev

基于 R 中字符串的共享值为数据框分配颜色

来自分类Dev

为 Pandas 数据框的重复(或多个)目标元素分配新值

来自分类Dev

使用数据框的列值为多索引数据框的行编制索引

来自分类Dev

根据条件为另一个数据框的数据框列设置值

来自分类Dev

如果数据框 A 列中的值为空,则将 B 列中的值写入 A 列

来自分类Dev

如何使用数据框中的2列中的值使用字典分配新列

来自分类Dev

在数据框中逐行分配值

Related 相关文章

  1. 1

    为数据框列分配值

  2. 2

    根据不同的列值为数据框中的列分配值

  3. 3

    概率分配数据框列值

  4. 4

    从列表列表中提取元素,并将其分配为pandas数据框列中的值

  5. 5

    为数据框中特定列中的文本分配值

  6. 6

    如何根据熊猫中的条件为数据框的子集的列分配值?

  7. 7

    在R中为数据框中的列重新分配值的更智能方法

  8. 8

    通过将值分配为pandas数据框中的列来对数据框中的行进行分组

  9. 9

    为列pandas数据框分配唯一的ID

  10. 10

    Pandas数据框:列值为列表的列值总和

  11. 11

    在两个数据框的列相等的情况下,分配数据框的列值

  12. 12

    无法为非连续数据列分配范围联合的值

  13. 13

    R:为数据分配值

  14. 14

    为数据分配值属性

  15. 15

    从数据框中删除值为零的列

  16. 16

    将数据框列值编辑为某种格式

  17. 17

    为列分配值-xmltable

  18. 18

    为20个重复和2次处理中的列的最小值分配一个数据框的子集

  19. 19

    如何在同一Pandas数据框中为另一列的唯一字符串值分配1000、1000 + 1

  20. 20

    为每个熊猫数据框单元格的字符串列表分配唯一值

  21. 21

    为数据框行分配1个随机值-需要帮助

  22. 22

    在熊猫中为数据框单元格分配值时出现问题

  23. 23

    基于 R 中字符串的共享值为数据框分配颜色

  24. 24

    为 Pandas 数据框的重复(或多个)目标元素分配新值

  25. 25

    使用数据框的列值为多索引数据框的行编制索引

  26. 26

    根据条件为另一个数据框的数据框列设置值

  27. 27

    如果数据框 A 列中的值为空,则将 B 列中的值写入 A 列

  28. 28

    如何使用数据框中的2列中的值使用字典分配新列

  29. 29

    在数据框中逐行分配值

热门标签

归档