相关疑难解决方法(0)

如何迭代Pandas中的DataFrame中的行?

我有一只DataFrame熊猫:

import pandas as pd
inp = [{'c1':10, 'c2':100}, {'c1':11,'c2':110}, {'c1':12,'c2':120}]
df = pd.DataFrame(inp)
print df
Run Code Online (Sandbox Code Playgroud)

输出:

   c1   c2
0  10  100
1  11  110
2  12  120
Run Code Online (Sandbox Code Playgroud)

现在我想迭代这个帧的行.对于每一行,我希望能够通过列的名称访问其元素(单元格中的值).例如:

for row in df.rows:
   print row['c1'], row['c2']
Run Code Online (Sandbox Code Playgroud)

是否有可能在熊猫中做到这一点?

我发现了类似的问题.但它没有给我我需要的答案.例如,建议使用:

for date, row in df.T.iteritems():
Run Code Online (Sandbox Code Playgroud)

要么

for row in df.iterrows():
Run Code Online (Sandbox Code Playgroud)

但我不明白row对象是什么以及如何使用它.

python rows dataframe pandas

1551
推荐指数
28
解决办法
199万
查看次数

计算两个纬度 - 经度点之间的距离?(Haversine配方)

如何计算纬度和经度指定的两点之间的距离?

为了澄清,我想要以公里为单位的距离; 这些要点使用WGS84系统,我想了解可用方法的相对准确性.

algorithm math maps latitude-longitude haversine

852
推荐指数
19
解决办法
72万
查看次数

有效地减去不同形状的numpy数组

使用的numpy的可以减去的形状(3)阵列的优良广播规则v从一个形状(5,3)排列X

X - v
Run Code Online (Sandbox Code Playgroud)

结果是一个shape(5,3)数组,其中每一行i都是差异X[i] - v.

有没有办法减去形状(n,3)数组w,X以便从w整个数组中减去每一行X而不显式使用循环?

python arrays numpy vectorization numpy-broadcasting

9
推荐指数
1
解决办法
7341
查看次数

Pandas纬度 - 连续行之间距离的经度

我在Python 2.7中的Pandas DataFrame中有以下内容:

Ser_Numb        LAT      LONG
       1  74.166061 30.512811
       2  72.249672 33.427724
       3  67.499828 37.937264
       4  84.253715 69.328767
       5  72.104828 33.823462
       6  63.989462 51.918173
       7  80.209112 33.530778
       8  68.954132 35.981256
       9  83.378214 40.619652
       10 68.778571 6.607066
Run Code Online (Sandbox Code Playgroud)

我想计算数据帧中连续行之间的距离.输出应该如下所示:

Ser_Numb          LAT        LONG   Distance
       1    74.166061   30.512811          0
       2    72.249672   33.427724          d_between_Ser_Numb2 and Ser_Numb1
       3    67.499828   37.937264          d_between_Ser_Numb3 and Ser_Numb2
       4    84.253715   69.328767          d_between_Ser_Numb4 and Ser_Numb3
       5    72.104828   33.823462          d_between_Ser_Numb5 and Ser_Numb4
       6    63.989462   51.918173          d_between_Ser_Numb6 and Ser_Numb5
       7    80.209112   33.530778   .
       8 …
Run Code Online (Sandbox Code Playgroud)

python numpy geospatial haversine pandas

8
推荐指数
1
解决办法
1万
查看次数

Pandas Dataframe:根据地理坐标(经度和纬度)连接范围内的项目

我有一个包含纬度和经度的地方的数据框.想象一下,例如城市.

df = pd.DataFrame([{'city':"Berlin", 'lat':52.5243700, 'lng':13.4105300},
                   {'city':"Potsdam", 'lat':52.3988600, 'lng':13.0656600},
                   {'city':"Hamburg", 'lat':53.5753200, 'lng':10.0153400}]);
Run Code Online (Sandbox Code Playgroud)

现在我试图让所有城市都在另一个城市的半径范围内.假设距离柏林500公里,距汉堡500公里等所有城市.我会通过复制原始数据帧并使用距离函数连接来完成此操作.

中间结果有点像这样:

Berlin --> Potsdam
Berlin --> Hamburg
Potsdam --> Berlin
Potsdam --> Hamburg
Hamburg --> Potsdam
Hamburg --> Berlin
Run Code Online (Sandbox Code Playgroud)

分组(减少)后的最终结果应该是这样的.备注:如果值列表包含城市的所有列,那将会很酷.

Berlin --> [Potsdam, Hamburg]
Potsdam --> [Berlin, Hamburg]
Hamburg --> [Berlin, Potsdam]
Run Code Online (Sandbox Code Playgroud)

或者只是一个城市周围500公里的城市数量.

Berlin --> 2
Potsdam --> 2
Hamburg --> 2
Run Code Online (Sandbox Code Playgroud)

由于我对Python很陌生,所以我会很感激任何起点.我很熟悉长距离.但不确定Scipy或Pandas中是否有有用的距离/空间方法.

很高兴,如果你能给我一个起点.到目前为止,我尝试过这篇文章.

更新:这个问题背后的原始想法来自两西格玛连接租赁列表Kaggle比赛.我们的想法是让那些在另一个列表中上市100米.其中a)表示密度,因此表示热门区域; b)如果比较地址,您可以查看是否存在交叉,因此是否存在噪声区域.因此,您不需要完整的项目与项目关系,因为您不仅需要比较距离,还需要比较地址和其他元数据.PS:我没有向Kaggle上传解决方案.我只是想学习.

python latitude-longitude haversine pandas

7
推荐指数
1
解决办法
1941
查看次数

在连续的pandas数据帧之间重复计算

我想计算沿GPS坐标路径的距离,该坐标存储在数据帧的两列中.

import pandas as pd

df = pd.DataFrame({ 'lat' : [1, 2.5, 3, 1.2],
                    'lng' : [1, 1, 2.1, 1],
                    'label': ['foo', 'bar', 'zip', 'foo']})
print df
Run Code Online (Sandbox Code Playgroud)

产量

  label  lat  lng
0   foo  1.0  1.0
1   bar  2.5  1.0
2   zip  3.0  2.1
3   foo  1.2  1.0
Run Code Online (Sandbox Code Playgroud)

GPS坐标以弧度存储.因此,数据帧的第一行和第二行之间的距离可以如下计算:

import math as m

r1 = 0
r2 = 1

distance =m.acos(m.sin(df.lat[r1]) * m.sin(df.lat[r2]) + 
     m.cos(df.lat[r1]) * m.cos(df.lat[r2]) * m.cos(df.lng[r2]-df.lng[r1]))*6371
Run Code Online (Sandbox Code Playgroud)

我想在每对连续行之间重复此计算,然后将每个短距离添加到完整路径的较长最终距离.

我可以将它放入数据帧的n-1行的循环中,但有更多的pythonic方法吗?

python gps numpy dataframe pandas

4
推荐指数
1
解决办法
1282
查看次数

熊猫:计算每组行中的半径距离

示例CSV如下所示:

 user_id  lat         lon
    1   19.111841   72.910729
    1   19.111342   72.908387
    2   19.111542   72.907387
    2   19.137815   72.914085
    2   19.119677   72.905081
    2   19.129677   72.905081
    3   19.319677   72.905081
    3   19.120217   72.907121
    4   19.420217   72.807121
    4   19.520217   73.307121
    5   19.319677   72.905081
    5   19.419677   72.805081
    5   19.629677   72.705081
    5   19.111860   72.911347
    5   19.111860   72.931346
    5   19.219677   72.605081
    6   19.319677   72.805082
    6   19.419677   72.905086
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用hasrsine进行距离计算(而且python也有hasrsine包):

def haversine(lon1, lat1, lon2, lat2):
    """
    Calculate the great circle distance between two points 
    on the earth (specified in …
Run Code Online (Sandbox Code Playgroud)

python csv gis distance pandas

2
推荐指数
1
解决办法
2346
查看次数