Skip to content

lower and upper from DataFrame.clip don't accept array-like #980

Closed
@ldouteau

Description

@ldouteau

Describe the bug
Hi,

There is an inconsistency with Pandas's doc regarding clip. This was already fixed for Series in #443, but not for DataFrame

def clip(
self,
lower: float | None = ...,
upper: float | None = ...,
*,
axis: Axis | None = ...,
inplace: _bool = ...,
**kwargs,
) -> DataFrame: ...

To Reproduce

  1. From https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.clip.html
import pandas as pd

data = {"col_0": [9, -3, 0, -1, 5], "col_1": [-2, -7, 6, 8, -5]}
df = pd.DataFrame(data)
t = pd.Series([2, -4, -1, 6, 3])
df.clip(t, t + 4, axis=0)
  1. Pyright 1.1.373
Argument of type "Series[int]" cannot be assigned to parameter "upper" of type "float | None" in function "clip"
  Type "Series[int]" is incompatible with type "float | None"
    "Series[int]" is incompatible with "float"
    "Series[int]" is incompatible with "None"Pylance[reportArgumentType](https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportArgumentType)

Please complete the following information:

  • OS: Windows 11
  • OS Version 23H2
  • python version 3.12.2
  • version of type checker: Pyright 1.1.373
  • version of installed pandas-stubs: 2.2.2.240807

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions