Skip to content

Commit 28a1e09

Browse files
code sample for pandas-dev#47172
1 parent 7040491 commit 28a1e09

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

bisect/47172.py

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# BUG: Memory leak when setting Series value via __setitem__ #47172
2+
3+
import gc
4+
import os
5+
6+
import psutil
7+
8+
import pandas as pd
9+
10+
print(pd.__version__)
11+
12+
13+
# create example data
14+
items = [f"item_{i}" for i in range(10_000)]
15+
16+
data = {}
17+
for i, col in enumerate(items[:1000]):
18+
data[col] = [1] * len(items)
19+
df = pd.DataFrame(index=items, data=data)
20+
21+
gc.collect()
22+
process = psutil.Process(os.getpid())
23+
rss = process.memory_info().rss / 1024 / 1024
24+
25+
for item in df.columns[:10]:
26+
df[item][item] = -10
27+
gc.collect()
28+
new_rss = process.memory_info().rss / 1024 / 1024
29+
result = "{:.2f} MiB".format(new_rss - rss)
30+
print(result)
31+
32+
assert result == "0.00 MiB", result

0 commit comments

Comments
 (0)