Python-Version: 3.13.9
Pandas-Version: 2.3.3
Tkinter-Version: 8.6
Kontext:
- Ich automatisiere eine ziemlich komplexe Aufgabe und habe sie endlich zum Laufen gebracht. Nachdem ich mich über die Benutzeroberflächen informiert hatte, richtete ich einen einfachen Tkinter ein und packte meinen Arbeitscode darin ein.
- Jetzt funktioniert mein Code nicht mehr :/
- Jedes Mal, wenn ich versuche, mit .loc oder sogar .drop auf meinen Pandas-Datenrahmen zuzugreifen, erscheint die SettingWithCopyWarning (Es wird versucht, einen Wert für eine Kopie festzulegen eines Slice aus einem DataFrame).
- Ich habe die Pandas-Dokumentation zu diesem Problem gelesen und „normalerweise“ sollte es bei .loc nicht passieren, es ist sogar einer der normalen Vorschläge, die Sie verwenden sollten, wenn Sie auf dieses Problem stoßen. (Dokument hier: https://note.nkmk.me/en/python-pandas-view-copy/)
Innerhalb einer Funktion scrape ich ein df namens translationData aus, das ich anschließend ein wenig bearbeiten muss, um die Probleme auszubügeln
Code: Select all
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)
Code: Select all
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)
Code: Select all
Display Description ... Language4 Language5
0 001 [Lorem ipsum dolor sit amet] ... [consectetur] [adipiscing elit]
1 002 [sed do eiusmod tempor ] ... [incididunt] [ut labore]
In den Dokumenten heißt es, dass dies unvorhersehbar ist und da es in meinem ursprünglichen Code funktioniert, weiß ich wirklich nicht, wie ich das beheben kann, da alle verwandten Probleme, die ich gefunden habe, ihre Lösung hatten „use .loc“, was ich auch gemacht habe.
Weiß jemand von euch, wie ich das beheben kann?
Mobile version