Чтение данных из Dataframe с использованием других данных Dataframe в качестве входных данных iloc - PullRequest
1 голос
/ 17 апреля 2019

Я пытаюсь получить значение из существующего df, используя координаты iloc, сохраненные в другом df, а затем сохранил это значение во втором df.

df_source (источник):

        Category1   Category2   Category3
Bucket1 100 200 300
Bucket2 400 500 600
Bucket3 700 800 900

df_coord (координаты):

Index_X Index_Y 
0   0
1   1
2   2

Want: df_coord

Index_X Index_Y Added
0   0   100
1   1   500
2   2   900

Я более знаком с аналитическим языком, таким как SAS, где данные обрабатываются по одной строке за раз, поэтому для меня естественным подходом было следующее:

df_coord['Added'] = df_source.iloc[df_coord[Index_X][df_coord[Index_Y]]

Когда я попробовал это, я получил ошибку, которая, как я понимаю, df_coord [Index_X] не ссылается на данные в той же строке. Я видел несколько постов, где использование параметра «axis = 1» работало для их соответствующих случаев, но я не могу понять, как применить его к этому случаю. Спасибо.

1 Ответ

1 голос
/ 17 апреля 2019

Вы можете проиндексировать базовый ndarray, то есть вызвать метод values, используя столбцы в df_coord в качестве первой и второй оси:

df_coord['Added'] = df_source.values[df_coord.Index_X, df_coord.Index_Y]

     Index_X  Index_Y Added
0        0      0      100
1        1      1      500
2        2      2      900
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...