169 похожих чатов

Дорогие коллеги, подскажите, пожалуйста, как правильно интерпретировать следующее наблюдение? Работаю

в RStudio (Server). Создаю дата фрейм df в R сессии. Запускаю через reticulate питон, пытаюсь в питоне изменить столбец в r.df (это уже объект pandas). Изменения не сохраняются. Создаю копию объекта r.df в питоне и успешно меняю столбец в копии. Далее записываю в r.df модифицированную копию. Возвращаюсь в окружение R. Дата фрейм df изменен. Почему не удается напрямую сделать эти изменения в r.df из питона?
P.S.: Конечно, сама задача по модификации столбца не требует двух языков. Задаю вопрос, чтобы лучше понять как работает связка R-Python через reticulate, поскольку при быстром поиске в Интернете ответа на свой вопрос не нашел.

library(dplyr)
library(reticulate)

df = data.frame(
col1 = letters[1:5]
)

df # initial dataframe
#> col1
#> 1 a
#> 2 b
#> 3 c
#> 4 d
#> 5 e

# reticulate::repl_python()
py_run_string("
# Trying to modify object in R environment from python
r.df[['col1']] = r.df[['col1']].replace(['a','b'],['A','B']) # replace lowercase a and b with uppercase A and B
")

df # object was not modified !
#> col1
#> 1 a
#> 2 b
#> 3 c
#> 4 d
#> 5 e

py_run_string("
# Copy to new object in python
df = r.df

# Manipulate with new object in python
df[['col1']] = df[['col1']].replace(['a','b'],['A','B']) # replace lowercase a and b with uppercase A and B

# Replace old object with new one
r.df = df
")

df # now object is modified
#> col1
#> 1 A
#> 2 B
#> 3 c
#> 4 d
#> 5 e

<sup>Created on 2023-07-22 with reprex v2.0.2</sup>

4 ответов

2 просмотра

Пространства памяти R и python — разных процессов, поэтому недоступны друг другу. Только через передачи копии.

Gleb Danilov- Автор вопроса
Ilya Shutov
Пространства памяти R и python — разных процессов,...

Но при этом почему-то можно заменить объект целиком.

Gleb Danilov
Но при этом почему-то можно заменить объект целико...

потому что копируется объект при присвоении

Gleb Danilov- Автор вопроса

Похожие вопросы

Обсуждают сегодня

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта