繁体   English   中英

根据其他数据框列更改列值

[英]Change column values based on other dataframe columns

我有两个看起来像这样的数据框

df1 == 
IDLocation  x-coord  y-coord
   1        -1.546    7.845
   2         3.256    1.965
   .
   .
   35        5.723    -2.724
df2 ==
 PIDLocation   DIDLocation
     14           5
      3           2
      7           26

我想用 Px-coord、Py-coord、Dx-coord、Dy-coord 替换列 PIDLocation、DIDLocation,这样两列 PIDLocation、DIDLocation 是 IDLocation,每个 IDLocation 对应于第一个数据框。

如果将 ID 列设置为df1的索引,则可以通过索引获取coord值。 我在下面的示例中更改了df2中的值,以避免由于没有完整数据集而导致的索引错误。

import pandas as pd

df1 = pd.DataFrame({'IDLocation': [1, 2, 35],
                    'x-coord': [-1.546, 3.256, 5.723],
                    'y-coord': [7.845, 1.965, -2.724]})
df2 = pd.DataFrame({'PIDLocation': [35, 1, 2],
                    'DIDLocation': [2, 1, 35]})

df1.set_index('IDLocation', inplace=True)

df2['Px-coord'] = [df1['x-coord'].loc[i] for i in df2.PIDLocation]
df2['Py-coord'] = [df1['y-coord'].loc[i] for i in df2.PIDLocation]
df2['Dx-coord'] = [df1['x-coord'].loc[i] for i in df2.DIDLocation]
df2['Dy-coord'] = [df1['y-coord'].loc[i] for i in df2.DIDLocation]

del df2['PIDLocation']
del df2['DIDLocation']

print(df2)
   Px-coord  Py-coord  Dx-coord  Dy-coord
0     5.723    -2.724     3.256     1.965
1    -1.546     7.845    -1.546     7.845
2     3.256     1.965     5.723    -2.724

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM