簡體   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