如果df2索引中的df1索引,Pandas会更新列值

时间:2018-03-27 13:52:47

标签: python pandas dataframe geopandas point-in-polygon

我有一个坐标数据框,我在其中执行多边形点,并返回多边形中的点集。

df1 - 原始坐标

0              POINT (-97.96192929999999 29.8929939)
1              POINT (-97.98886109999999 29.8230438)
2              POINT (-97.6573715 30.15241810000001)
3              POINT (-97.68809509999998 30.3590794)
4              POINT (-97.37609860000001 31.0930271)
5              POINT (-97.66625980000001 30.3466492)
6                     POINT (-97.6666412 30.3455753)
...

df2 - 结果

4       POINT (-97.37609860000001 31.0930271)
1496    POINT (-97.64907839999999 30.3872128)
445     POINT (-97.64907839999999 30.3872128)
2822    POINT (-97.649353 30.387228)
1369    POINT (-97.6488342 30.3873215)
6       POINT (-97.6666412 30.3455753)
2303    POINT (-97.6492767 30.38755039999999)
...

如何在df1中添加“area”列,并为两个dfs中的行索引设置values =“area1”?在上面的例子中,第4行和第6行在结果中,所以我想为df1中的那些行设置一个area column =“area1”

1 个答案:

答案 0 :(得分:2)

如果您正在讨论索引,导致pandas对索引/列敏感,这意味着它将在匹配的索引上分配新的值。

那你可以做什么

df1['area']=df2['Value']
#df2['New']='are1' then df1['area']=df2['New']

玩具数据

df1=pd.DataFrame({'d1':[1,2,3]},index=[1,2,3])
df2=pd.DataFrame({'d2':[1,2,3]},index=[2,6,1])
df1['New']=df2.d2
df1
Out[724]: 
   d1  New
1   1  3.0
2   2  1.0
3   3  NaN