Pandas 如果 df2 索引中有 df1 索引则更新列值
Pandas update column value if df1 index in df2 index
我有一个坐标数据框,我在其中执行多边形中的点,它 returns 多边形中的点集。
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 中的行索引设置值 = "area1"?在上面的示例中,第 4 行和第 6 行在结果中,因此我希望 df1
中的那些行有一个区域列 = "area1"
如果你在谈论索引,因为 pandas 是 index/column 敏感的,这意味着它将根据匹配的索引分配新值。
那么你能做什么
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
我有一个坐标数据框,我在其中执行多边形中的点,它 returns 多边形中的点集。
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 中的行索引设置值 = "area1"?在上面的示例中,第 4 行和第 6 行在结果中,因此我希望 df1
中的那些行有一个区域列 = "area1"如果你在谈论索引,因为 pandas 是 index/column 敏感的,这意味着它将根据匹配的索引分配新值。
那么你能做什么
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