Версия Python: 3.13.9
Версия Pandas: 2.3.3
Версия tkinter: 8.6
Контекст:
- Я автоматизирую довольно сложную задачу и наконец-то заставил ее работать. Изучив пользовательский интерфейс, я установил простой Tkinter и обернул в него свой рабочий код.
- Теперь мой код больше не работает:/
- Каждый раз, когда я пытаюсь получить доступ к своему фрейму данных pandas с помощью .loc или даже .drop, появляется SettingWithCopyWarning (Пытается установить значение копия фрагмента из DataFrame).
- Я прочитал документацию pandas об этой проблеме, и «обычно» этого не должно происходить с .loc, это даже одно из обычных предложений, которые можно использовать, когда вы сталкиваетесь с этим. (документ здесь: https://note.nkmk.me/en/python-pandas-view-copy/)
В функции я очищаю df под названием TranslationData, который мне нужно немного потом отредактировать, чтобы сгладить недостатки
Код: Выделить всё
for i, row in translationData.iterrows():
if re.match("^Output for field 1",description):
translationData.loc[i,"Display"]= "001bis"
elif re.match("Menu items: Language names",description):
translationData.drop(index=i,axis=1, inplace=True)
Код: Выделить всё
c:\Users\*****\TranslatorV2_0_0.py:171: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
translationData.loc[i,"Display"]= "001bis"
c:\Users\*****\TranslatorV2_0_0.py:178: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame
See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy
translationData.drop(index= dropables, inplace=True)
Код: Выделить всё
Display Description ... Language4 Language5
0 001 [Lorem ipsum dolor sit amet] ... [consectetur] [adipiscing elit]
1 002 [sed do eiusmod tempor ] ... [incididunt] [ut labore]
В документации говорится, что это непредсказуемо, и, поскольку это работает в моем исходном коде, я действительно не знаю, как это исправить, поскольку любые связанные проблемы, которые я обнаружил, имели свое решение как «использовать .loc", что я и делал.
Кто-нибудь из вас знает, как я могу это исправить?
Подробнее здесь: https://stackoverflow.com/questions/798 ... ws-vs-copy
Мобильная версия