@@ -83,34 +83,40 @@ be set to ``"pyarrow"`` to return pyarrow-backed, nullable :class:`ArrowDtype` (
83
83
df_pyarrow = pd.read_csv(data, use_nullable_dtypes = True , engine = " pyarrow" )
84
84
df_pyarrow.dtypes
85
85
86
- Copy on write improvements
86
+ Copy-on-Write improvements
87
87
^^^^^^^^^^^^^^^^^^^^^^^^^^
88
88
89
- A new lazy copy mechanism that defers the copy until the object in question is modified
90
- was added to the following methods:
91
-
92
- - :meth: `DataFrame.reset_index ` / :meth: `Series.reset_index `
93
- - :meth: `DataFrame.set_index ` / :meth: `Series.set_index `
94
- - :meth: `DataFrame.set_axis ` / :meth: `Series.set_axis `
95
- - :meth: `DataFrame.rename_axis ` / :meth: `Series.rename_axis `
96
- - :meth: `DataFrame.rename_columns `
97
- - :meth: `DataFrame.reindex ` / :meth: `Series.reindex `
98
- - :meth: `DataFrame.reindex_like ` / :meth: `Series.reindex_like `
99
- - :meth: `DataFrame.assign `
100
- - :meth: `DataFrame.drop `
101
- - :meth: `DataFrame.dropna ` / :meth: `Series.dropna `
102
- - :meth: `DataFrame.select_dtypes `
103
- - :meth: `DataFrame.align ` / :meth: `Series.align `
104
- - :meth: `Series.to_frame `
105
- - :meth: `DataFrame.rename ` / :meth: `Series.rename `
106
- - :meth: `DataFrame.add_prefix ` / :meth: `Series.add_prefix `
107
- - :meth: `DataFrame.add_suffix ` / :meth: `Series.add_suffix `
108
- - :meth: `DataFrame.drop_duplicates ` / :meth: `Series.drop_duplicates `
109
- - :meth: `DataFrame.reorder_levels ` / :meth: `Series.reorder_levels `
110
-
111
- These methods return views when copy on write is enabled, which provides a significant
112
- performance improvement compared to the regular execution (:issue: `49473 `). Copy on write
113
- can be enabled through
89
+ - A new lazy copy mechanism that defers the copy until the object in question is modified
90
+ was added to the following methods:
91
+
92
+ - :meth: `DataFrame.reset_index ` / :meth: `Series.reset_index `
93
+ - :meth: `DataFrame.set_index ` / :meth: `Series.set_index `
94
+ - :meth: `DataFrame.set_axis ` / :meth: `Series.set_axis `
95
+ - :meth: `DataFrame.rename_axis ` / :meth: `Series.rename_axis `
96
+ - :meth: `DataFrame.rename_columns `
97
+ - :meth: `DataFrame.reindex ` / :meth: `Series.reindex `
98
+ - :meth: `DataFrame.reindex_like ` / :meth: `Series.reindex_like `
99
+ - :meth: `DataFrame.assign `
100
+ - :meth: `DataFrame.drop `
101
+ - :meth: `DataFrame.dropna ` / :meth: `Series.dropna `
102
+ - :meth: `DataFrame.select_dtypes `
103
+ - :meth: `DataFrame.align ` / :meth: `Series.align `
104
+ - :meth: `Series.to_frame `
105
+ - :meth: `DataFrame.rename ` / :meth: `Series.rename `
106
+ - :meth: `DataFrame.add_prefix ` / :meth: `Series.add_prefix `
107
+ - :meth: `DataFrame.add_suffix ` / :meth: `Series.add_suffix `
108
+ - :meth: `DataFrame.drop_duplicates ` / :meth: `Series.drop_duplicates `
109
+ - :meth: `DataFrame.reorder_levels ` / :meth: `Series.reorder_levels `
110
+
111
+ These methods return views when Copy-on-Write is enabled, which provides a significant
112
+ performance improvement compared to the regular execution (:issue: `49473 `).
113
+
114
+ - Accessing a single column of a DataFrame as a Series (e.g. ``df["col"] ``) now always
115
+ returns a new object every time it is constructed when Copy-on-Write is enabled (not
116
+ returning multiple times an identical, cached Series object). This ensures that those
117
+ Series objects correctly follow the Copy-on-Write rules (:issue: `49450 `)
118
+
119
+ Copy-on-Write can be enabled through
114
120
115
121
.. code-block :: python
116
122
0 commit comments