Copy-on-Write expérimental

Pandas 2.0 introduit le mode Copy-on-Write (CoW) en option. Avec CoW activé, chaque opération qui semble retourner une copie partage en réalité la mémoire jusqu'à la première modification, éliminant les SettingWithCopyWarning et réduisant l'usage mémoire.

Activer et utiliser CoW

python
import pandas as pd

# Activer Copy-on-Write
pd.set_option('mode.copy_on_write', True)

df = pd.DataFrame({'a': [1, 2, 3], 'b': [4, 5, 6]})

# Ceci partage la mémoire (pas de copie)
subset = df[['a']]

# La copie se fait seulement à la modification
subset.iloc[0, 0] = 999  # copie déclenchée ici

# L'original n'est PAS modifié
print(df['a'].iloc[0])  # 1 (inchangé)
print(subset['a'].iloc[0])  # 999

# Plus de SettingWithCopyWarning !

Sources