Skip to content

Commit 704608e

Browse files
code sample for pandas-dev#48124
1 parent 67b9bc7 commit 704608e

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

bisect/48124.py

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
# BUG: using NamedTuples with .loc works only sometimes #48124
2+
3+
4+
import pandas as pd
5+
from collections import namedtuple
6+
7+
print(pd.__version__)
8+
9+
# A df with two level MutltiIndex
10+
df = pd.DataFrame(
11+
index=pd.MultiIndex.from_product(
12+
[["A", "B"], ["a", "b", "c"]], names=["first", "second"]
13+
)
14+
)
15+
16+
# complicated subset
17+
expected = df.loc[("A", ["a", "b"]), :] # <- Works
18+
19+
indexer_tuple = namedtuple("Indexer", df.index.names)
20+
21+
# complicated subset with named tuple
22+
result = df.loc[indexer_tuple(first="A", second=["a", "b"]), :] # <- DOES NOT WORK!
23+
# Raises:
24+
# InvalidIndexError: Indexer(first='A', second=['a', 'b'])
25+
print(result)
26+
27+
pd.testing.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)