Skip to content

Commit ce8c7b6

Browse files
ritsuki1227Ritsuki Yamada
and
Ritsuki Yamada
authored
take method on NDDataFrame (#1209)
* take method on NDDataFrame * add axis test cases & refactor --------- Co-authored-by: Ritsuki Yamada <ritsuki.yamada@uzabase.com>
1 parent cbb6723 commit ce8c7b6

File tree

5 files changed

+24
-4
lines changed

5 files changed

+24
-4
lines changed

‎pandas-stubs/core/frame.pyi

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2298,7 +2298,6 @@ class DataFrame(NDFrame, OpsMixin, _GetItemHack):
22982298
) -> Series: ...
22992299
def swapaxes(self, axis1: Axis, axis2: Axis, copy: _bool = ...) -> Self: ...
23002300
def tail(self, n: int = ...) -> Self: ...
2301-
def take(self, indices: list, axis: Axis = ..., **kwargs: Any) -> Self: ...
23022301
@overload
23032302
def to_json(
23042303
self,

‎pandas-stubs/core/generic.pyi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ from pandas._typing import (
4646
P,
4747
StorageOptions,
4848
T,
49+
TakeIndexer,
4950
TimedeltaConvertibleTypes,
5051
TimeGrouperOrigin,
5152
TimestampConvention,
@@ -418,3 +419,5 @@ class NDFrame(indexing.IndexingMixin):
418419
offset: TimedeltaConvertibleTypes | None = ...,
419420
group_keys: _bool = ...,
420421
) -> DatetimeIndexResampler[Self]: ...
422+
@final
423+
def take(self, indices: TakeIndexer, axis: Axis = ..., **kwargs: Any) -> Self: ...

‎pandas-stubs/core/series.pyi

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -450,9 +450,6 @@ class Series(IndexOpsMixin[S1], NDFrame):
450450
def __array__(self, dtype=...) -> np.ndarray: ...
451451
@property
452452
def axes(self) -> list: ...
453-
def take(
454-
self, indices: Sequence, axis: AxisIndex = ..., **kwargs: Any
455-
) -> Series[S1]: ...
456453
def __getattr__(self, name: _str) -> S1: ...
457454
@overload
458455
def __getitem__(

‎tests/test_frame.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2984,6 +2984,17 @@ def test_iloc_tuple() -> None:
29842984
df = df.iloc[0:2,]
29852985

29862986

2987+
def test_take() -> None:
2988+
df = pd.DataFrame({"a": [1, 2, 3], "b": [4, 5, 6]})
2989+
check(assert_type(df.take([0, 1]), pd.DataFrame), pd.DataFrame)
2990+
check(assert_type(df.take([np.int64(0), np.int64(1)]), pd.DataFrame), pd.DataFrame)
2991+
check(assert_type(df.take(np.array([0, 1])), pd.DataFrame), pd.DataFrame)
2992+
check(assert_type(df.take([0, 1], "index"), pd.DataFrame), pd.DataFrame)
2993+
check(assert_type(df.take([0, 1], 0), pd.DataFrame), pd.DataFrame)
2994+
check(assert_type(df.take([0, 1], "columns"), pd.DataFrame), pd.DataFrame)
2995+
check(assert_type(df.take([0, 1], 1), pd.DataFrame), pd.DataFrame)
2996+
2997+
29872998
def test_set_columns() -> None:
29882999
# GH 73
29893000
df = pd.DataFrame({"a": [1, 2, 3], "b": [0.0, 1, 1]})

‎tests/test_series.py

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1715,6 +1715,16 @@ def test_iloc_getitem_ndarray() -> None:
17151715
check(assert_type(values_s.iloc[indices_u64], pd.Series), pd.Series)
17161716

17171717

1718+
def test_take() -> None:
1719+
s = pd.Series(np.arange(10), name="a")
1720+
check(assert_type(s.take([0, 1]), pd.Series), pd.Series)
1721+
check(
1722+
assert_type(s.take([np.int64(0), np.int64(1)]), pd.Series),
1723+
pd.Series,
1724+
)
1725+
check(assert_type(s.take(np.array([0, 1])), pd.Series), pd.Series)
1726+
1727+
17181728
def test_iloc_setitem_ndarray() -> None:
17191729
# GH 85
17201730
# GH 86

0 commit comments

Comments
 (0)