2.1.0 中的新增功能(2023 年 8 月 30 日)# 这些是 pandas 2.1.0 中的变化。请参阅发行说明以获取完整的变更日志,包括其他版本的 pandas。 增强功能# PyArrow 将成为 pandas 3.0 的必需依赖项# 从 pandas 3.0 开始, PyArrow将成为 pandas 的必需依赖项。该决定是根据 PDEP 10做出的。 这将带来更多对 pandas 用户非常有利的改变,包括但不限于: 默认情况下将字符串推断为 PyArrow 支持的字符串,从而显着减少内存占用并大幅提高性能。 默认情况下使用 PyArrow 推断更复杂的数据类型,例如Decimal、lists、 bytes等。structured data 与依赖 Apache Arrow 的其他库具有更好的互操作性。 我们正在此处收集有关此决定的反馈。 默认情况下避免对字符串使用 NumPy 对象数据类型# 以前,默认情况下所有字符串都存储在具有 NumPy 对象数据类型的列中。此版本引入了一个选项future.infer_string,可以将所有字符串推断为 PyArrow 支持的带有 dtype 的字符串"string[pyarrow_numpy]"。这是一个新的字符串数据类型实现,在比较操作中遵循 NumPy 语义,并将np.nan作为缺失值指示符返回。设置该选项还将推断 dtype"string"为StringDtype存储设置为 的数据类型"pyarrow_numpy",忽略该选项后面的值 mode.string_storage。 仅当安装了 PyArrow 时此选项才有效。与 NumPy 对象 ( GH 54430 ) 相比,PyArrow 支持的字符串显着减少了内存占用,并提供了很大的性能改进。 可以通过以下方式启用该选项: pd.options.future.infer_string = True 此行为将成为 pandas 3.0 的默认行为。 DataFrame 缩减保留了扩展 dtypes # 在 pandas 的早期版本中,DataFrame 缩减(等)的结果具有 NumPy dtypes,即使 DataFrame 具有扩展 dtypes 也是如此。 Pandas 现在可以在使用通用 dtype ( GH 52788 )对 DataFrame 列进行缩减时保留 dtype 。DataFrame.sum() DataFrame.mean() 旧行为 In [1]: df = pd.DataFrame({"a": [1, 1, 2, 1], "b": [np.nan, 2.0, 3.0, 4.0]}, dtype="Int64") In [2]: df.sum() Out[2]: a 5 b 9 dtype: int64 In [3]: df = df.astype("int64[pyarrow]") In [4]: df.sum() Out[4]: a 5 b 9 dtype: int64 新行为 In [1]: df = pd.DataFrame({"a": [1, 1, 2, 1], "b": [np.nan, 2.0, 3.0, 4.0]}, dtype="Int64") In [2]: df.sum() Out[2]: a 5 b 9 dtype: Int64 In [3]: df = df.astype("int64[pyarrow]") In [4]: df.sum() Out[4]: a 5 b 9 dtype: int64[pyarrow] 请注意,dtype 现在分别是 masked dtype 和 PyArrow dtype,而之前它是 NumPy 整数 dtype。 为了允许 DataFrame 缩减以保留扩展 dtypes,ExtensionArray._reduce()已经获得了一个新的关键字参数keepdims。调用ExtensionArray._reduce()withkeepdims=True应返回沿缩减轴长度为 1 的数组。为了保持向后兼容性,该参数不是必需的,但将来会成为必需的。如果在签名中找不到该参数,则 DataFrame 缩减无法保留扩展 dtypes。此外,如果未找到参数,FutureWarning将发出 a 并且像 mypy 这样的类型检查器可能会抱怨签名与ExtensionArray._reduce(). 写入时复制改进# Series.transform()func就地修改时不尊重写入时复制Series(GH 53747) 调用Index.values()现在将返回只读 NumPy 数组 ( GH 53704 ) 将 a 设置Series为 aDataFrame现在会创建惰性复制而不是深层复制(GH 53142) DataFrame当从 Index 对象的字典构造 DataFrame 并指定 时,构造函数现在copy=False将使用这些 Index 对象的惰性副本作为 DataFrame 的列 ( GH 52947 ) Series 或 DataFrame ( df.copy(deep=False)) 的浅拷贝现在还将返回行/列Index对象的浅拷贝,而不仅仅是数据的浅拷贝,即结果的索引不再相同(不再为 True)(GH 53721)df.copy(deep=False).index is df.index DataFrame.head()现在DataFrame.tail()将返回深层副本(GH 54011) 添加惰性复制机制DataFrame.eval()(GH 53746) 现在,当启用写入时复制时,尝试对临时列选择(例如 )进行就地操作将始终发出警告。在这种模式下,像这样的就地操作永远不会起作用,因为选择的行为就像临时副本一样。这适用于:df["a"].fillna(100, inplace=True) DataFrame.update / Series.update DataFrame.fillna / Series.fillna DataFrame.replace / Series.replace 数据帧.clip / 系列.clip DataFrame.where / Series.where DataFrame.mask / Series.mask DataFrame.interpolate / Series.interpolate DataFrame.ffill / Series.ffill DataFrame.bfill / Series.bfill 新DataFrame.map()方法和对 ExtensionArrays 的支持# 已DataFrame.map()添加并DataFrame.applymap()已弃用。DataFrame.map()具有与 相同的功能DataFrame.applymap(),但新名称更好地传达了这是( GH 52353DataFrame )的版本。Series.map() 当给定一个可调用对象时,Series.map()将该可调用对象应用于 的所有元素Series。类似地,DataFrame.map()将可调用应用到 的所有元素DataFrame,同时Index.map()将可调用应用到 的所有元素Index。 通常,不希望将可调用对象应用于数组的类似 nan 的值,并且为了避免这样做,map可以使用na_action="ignore",即 来调用该方法。然而,对于许多类型并没有实现,并且对于除可空数字类型(即具有 dtype等)之外的任何子类都不能正常工作。ser.map(func, na_action="ignore")na_action="ignore"ExtensionArrayIndexna_action="ignore"ExtensionArrayInt64 na_action="ignore"现在适用于所有数组类型(GH 52219、GH 51645、GH 51809、GH 51936、GH 52033、GH 52096)。 以前的行为: In [1]: ser = pd.Series(["a", "b", np.nan], dtype="category") In [2]: ser.map(str.upper, na_action="ignore") NotImplementedError In [3]: df = pd.DataFrame(ser) In [4]: df.applymap(str.upper, na_action="ignore") # worked for DataFrame 0 0 A 1 B 2 NaN In [5]: idx = pd.Index(ser) In [6]: idx.map(str.upper, na_action="ignore") TypeError: CategoricalIndex.map() got an unexpected keyword argument 'na_action' 新行为: In [5]: ser = pd.Series(["a", "b", np.nan], dtype="category") In [6]: ser.map(str.upper, na_action="ignore") Out[6]: 0 A 1 B 2 NaN dtype: category Categories (2, object): ['A', 'B'] In [7]: df = pd.DataFrame(ser) In [8]: df.map(str.upper, na_action="ignore") Out[8]: 0 0 A 1 B 2 NaN In [9]: idx = pd.Index(ser) In [10]: idx.map(str.upper, na_action="ignore") Out[10]: CategoricalIndex(['A', 'B', nan], categories=['A', 'B'], ordered=False, dtype='category') 另请注意,Categorical.map()默认情况下已将其na_action设置为"ignore"隐式。这已被弃用,默认值Categorical.map()将更改为na_action=None,与所有其他数组类型一致。 新实施#DataFrame.stack() pandas 重新实现了DataFrame.stack().要使用新的实现,请传递参数future_stack=True。这将成为pandas 3.0中唯一的选择。 之前的实现有两个主要的行为缺点。 以前的实现会不必要地将 NA 值引入结果中。用户可以通过传递dropna=True(默认)自动删除 NA 值,但这样做也可能从输入中存在的结果中删除 NA 值。请参阅下面的示例。 以前的实现sort=True(默认)有时会对结果索引的一部分进行排序,有时则不会。如果输入的列不是a,MultiIndex则结果索引将永远不会被排序。如果列是 a MultiIndex,则在大多数情况下,将对来自堆叠列级别的结果索引中的级别进行排序。在极少数情况下,此类级别将以非标准顺序排序,具体取决于列的创建方式。 新的实现 ( future_stack=True) 在堆叠多个级别时将不再不必要地引入 NA 值,并且永远不会排序。因此,参数dropna和sort未被使用,并且在使用时必须保持未指定状态future_stack=True。这些参数将在下一个主要版本中删除。 In [11]: columns = pd.MultiIndex.from_tuples([("B", "d"), ("A", "c")]) In [12]: df = pd.DataFrame([[0, 2], [1, 3]], index=["z", "y"], columns=columns) In [13]: df Out[13]: B A d c z 0 2 y 1 3 在以前的版本 ( future_stack=False) 中,默认值将删除不必要的引入 NA 值,但仍会在此过程中dropna=True强制 dtype 。float64在新版本中,没有引入 NA,因此没有数据类型的强制。 In [14]: df.stack([0, 1], future_stack=False, dropna=True) Out[14]: z A c 2.0 B d 0.0 y A c 3.0 B d 1.0 dtype: float64 In [15]: df.stack([0, 1], future_stack=True) Out[15]: z B d 0 A c 2 y B d 1 A c 3 dtype: int64 如果输入包含 NA 值,则先前版本也会使用 删除这些值dropna=True或引入新的 NA 值dropna=False。新版本保留输入中的所有值。 In [16]: df = pd.DataFrame([[0, 2], [np.nan, np.nan]], columns=columns) In [17]: df Out[17]: B A d c 0 0.0 2.0 1 NaN NaN In [18]: df.stack([0, 1], future_stack=False, dropna=True) Out[18]: 0 A c 2.0 B d 0.0 dtype: float64 In [19]: df.stack([0, 1], future_stack=False, dropna=False) Out[19]: 0 A d NaN c 2.0 B d 0.0 c NaN 1 A d NaN c NaN B d NaN c NaN dtype: float64 In [20]: df.stack([0, 1], future_stack=True) Out[20]: 0 B d 0.0 A c 2.0 1 B d NaN A c NaN dtype: float64 其他增强功能# Series.ffill()现在Series.bfill()支持具有IntervalDtype( GH 54247 )的对象 添加filters参数以read_parquet()过滤数据,与两者兼容engines(GH 53212) Categorical.map()现在CategoricalIndex.map()有了一个na_action参数。 Categorical.map()隐式有一个默认值"ignore"for na_action。这已被正式弃用,并将None在将来更改。另请注意,除非另有明确设置,否则现在将使用Series.map()默认值na_action=None和对带有分类数据的系列的调用( GH 44279)na_action=None api.extensions.ExtensionArray现在有一个map()方法(GH 51809) DataFrame.applymap()现在使用map()底层api.extensions.ExtensionArray实例的方法(GH 52219) MultiIndex.sort_values()现在支持na_position(GH 51612) MultiIndex.sortlevel()并Index.sortlevel()获得了一个新的关键字na_position(GH 51612) arrays.DatetimeArray.map(),arrays.TimedeltaArray.map()现在arrays.PeriodArray.map()可以进行na_action论证(GH 51644) arrays.SparseArray.map()现在支持na_action(GH 52096)。 pandas.read_html()现在支持storage_options与 URL 一起使用的关键字,允许用户向出站 HTTP 请求添加标头 ( GH 49944 ) 添加Index.diff()和Index.round()(GH 19708) 添加为参数的"latex-math"选项,该参数不会转义格式化之间和格式化期间的所有字符 ( GH 51903 )escapeStyler"\(""\)" 将类别的 dtype 添加到( GH 52179 )repr的信息CategoricalDtype 将engine_kwargs参数添加到read_excel()(GH 52214) pandas.api.typing对类型提示有用的类已添加到新子模块( GH 48577 )的公共 API 中 实施Series.dt.is_month_start, Series.dt.is_month_end, Series.dt.is_year_start, Series.dt.is_year_end, Series.dt.is_quarter_start, Series.dt.is_quarter_end, Series.dt.days_in_month, , , Series.dt.unit, Series.dt.normalize,Series.dt.day_name()与( GH 52388 , GH 51718Series.dt.month_name() )Series.dt.tz_convert()ArrowDtypepyarrow.timestamp DataFrameGroupBy.agg()现在DataFrameGroupBy.transform(),当索引不是MultiIndexfor时,支持按多个键进行分组engine="numba"(GH 53486) SeriesGroupBy.agg()现在DataFrameGroupBy.agg()支持传入多个函数engine="numba"(GH 53486) SeriesGroupBy.transform()现在DataFrameGroupBy.transform()支持传入字符串作为engine="numba"( GH 53579 )的函数 DataFrame.stack()获得sort关键字来指示结果MultiIndex级别是否已排序(GH 15105) DataFrame.unstack()获得sort关键字来指示结果MultiIndex级别是否已排序(GH 15105) Series.explode()现在支持 PyArrow 支持的列表类型 ( GH 53602 ) Series.str.join()现在支持ArrowDtype(pa.string())(GH 53646) 将validate参数添加到Categorical.from_codes()(GH 50975) 添加由和( GH 53659 )ExtensionArray.interpolate()使用Series.interpolate()DataFrame.interpolate() 添加了engine_kwargs参数DataFrame.to_excel()(GH 53220) 实施( GHapi.interchange.from_dataframe() 54239 )DatetimeTZDtype 实施__from_arrow__于DatetimeTZDtype( GH 52201 ) 实现__pandas_priority__为允许自定义类型优先于DataFrame、Series、Index、 或ExtensionArray对于算术运算,请参阅开发人员指南( GH 48347 ) DataFrame.merge()使用(GH 51861)改进具有不兼容列时的错误消息 通过(GH 51701)改进设置DataFrame错误列数时的错误消息DataFrame.isetitem() DataFrame.to_json()改进了与不兼容index和参数一起使用时的错误处理orient(GH 52143) 改进了创建包含空数据(0 行)、无索引和不正确列数的 DataFrame 时的错误消息 ( GH 52084 ) 改进了向( GH 54379 )提供无效index或offset参数时的错误消息VariableOffsetWindowIndexer 让DataFrame.to_feather()接受非默认Index和非字符串列名(GH 51787) by_row向Series.apply()和添加了新参数DataFrame.apply()。当设置为False提供的可调用对象时,将始终在整个系列或数据帧(GH 53400,GH 53601)上运行。 DataFrame.shift()现在Series.shift()允许通过提供周期列表来进行多个周期的转换(GH 44424) Groupby 聚合numba(例如DataFrameGroupBy.sum())现在可以保留输入的数据类型,而不是转换为float64(GH 44952) 改进了失败时的错误消息DataFrameGroupBy.agg()(GH 52930) 许多 read/to_* 函数(例如DataFrame.to_pickle()和read_csv())支持将压缩参数转发到lzma.LZMAFile( GH 52979 ) 现在支持对象数据类型的缩减Series.argmax(), Series.argmin(), Series.idxmax(), Series.idxmin(), Index.argmax(), Index.argmin(), DataFrame.idxmax(), ( GH 4279 , GH 18021 , GH 40685 , GH 43697 )DataFrame.idxmin() DataFrame.to_parquet()现在read_parquet()将分别写入和读取attrs(GH 54346) Index.all()并且Index.any()对于浮动数据类型和 timedelta64 数据类型不再引发TypeError,匹配Series.all()和Series.any()行为(GH 54566) Series.cummax(),Series.cummin()现在Series.cumprod()支持 pyarrow 版本 13.0 及更高版本的 pyarrow dtypes ( GH 52085 ) 添加了对 DataFrame 联盟标准 ( GH 54383 )的支持 DataFrameGroupBy.quantile()和SeriesGroupBy.quantile()( GH 51722 ) 的性能改进 PyArrow 支持的整数数据类型现在支持按位运算 ( GH 54495 ) 向后不兼容的 API 更改# 增加了 Python 的最低版本# pandas 2.1.0 支持 Python 3.9 及更高版本。 增加了依赖项的最低版本# 更新了一些依赖项的最低支持版本。如果安装了,我们现在需要: 包裹 最低版本 必需的 改变了 麻木 1.22.4 X X mypy(开发) 1.4.1 X 美丽汤4 4.11.1 X 瓶颈 1.3.4 X 数据帧 API 兼容 0.1.7 X 快速镶木地板 0.8.1 X FS规范 2022.05.0 X 假设 6.46.1 X GCSFS 2022.05.0 X 金贾2 3.1.2 X lxml 4.8.0 X 努巴 0.55.2 X 数值表达式 2.8.0 X 开放式pyxl 3.0.10 X pandas-GBQ 0.17.5 X 心理咨询师2 2.9.3 X pyreadstat 1.1.5 X pyqt5 5.15.6 X pytables 3.7.0 X py测试 7.3.2 X python-snappy 0.6.1 X pyxlsb 1.0.9 X s3fs 2022.05.0 X scipy 1.8.1 X sqlalchemy 1.4.36 X 制表 0.8.10 X 阵列 2022.03.0 X XLSX作家 3.0.3 X 标准 0.17.0 X 对于可选库,一般建议使用最新版本。 有关更多信息,请参阅依赖项和可选依赖项。 其他 API 更改# arrays.PandasArray已重命名NumpyExtensionArray,附加的数据类型名称从 更改PandasDtype为NumpyEADtype;导入PandasArray仍然有效,直到下一个主要版本(GH 53694) 弃用# 已弃用类似 setitem 的 Series 操作中的静默向上转换# PDEP-6:https://pandas.pydata.org/pdeps/0006-ban-upcasting.html Series(或 DataFrame 列)上类似 Setitem 的操作会默默地向上转换 dtype,因此已被弃用并显示警告。受影响的操作示例包括: ser.fillna('foo', inplace=True) ser.where(ser.isna(), 'foo', inplace=True) ser.iloc[indexer] = 'foo' ser.loc[indexer] = 'foo' df.iloc[indexer, 0] = 'foo' df.loc[indexer, 'a'] = 'foo' ser[indexer] = 'foo' 其中ser是 a Series,df是 a DataFrame,并且indexer 可以是切片、掩码、单个值、值列表或数组,或者任何其他允许的索引器。 在未来的版本中,这些将引发错误,您应该首先转换为通用数据类型。 以前的行为: In [1]: ser = pd.Series([1, 2, 3]) In [2]: ser Out[2]: 0 1 1 2 2 3 dtype: int64 In [3]: ser[0] = 'not an int64' In [4]: ser Out[4]: 0 not an int64 1 2 2 3 dtype: object 新行为: In [1]: ser = pd.Series([1, 2, 3]) In [2]: ser Out[2]: 0 1 1 2 2 3 dtype: int64 In [3]: ser[0] = 'not an int64' FutureWarning: Setting an item of incompatible dtype is deprecated and will raise an error in a future version of pandas. Value 'not an int64' has dtype incompatible with int64, please explicitly cast to a compatible dtype first. In [4]: ser Out[4]: 0 not an int64 1 2 2 3 dtype: object 要保留当前行为,在上面的情况下,您可以首先转换ser为dtype:object In [21]: ser = pd.Series([1, 2, 3]) In [22]: ser = ser.astype('object') In [23]: ser[0] = 'not an int64' In [24]: ser Out[24]: 0 not an int64 1 2 2 3 dtype: object 根据用例,转换为不同的数据类型可能更合适。例如,在下面,我们转换为float64: In [25]: ser = pd.Series([1, 2, 3]) In [26]: ser = ser.astype('float64') In [27]: ser[0] = 1.1 In [28]: ser Out[28]: 0 1.1 1 2.0 2 3.0 dtype: float64 如需进一步阅读,请参阅https://pandas.pydata.org/pdeps/0006-ban-upcasting.html。 已弃用解析具有混合时区的日期时间# 不推荐使用混合时区解析日期时间并显示警告,除非用户传递utc=True到to_datetime()(GH 50887) 以前的行为: In [7]: data = ["2020-01-01 00:00:00+06:00", "2020-01-01 00:00:00+01:00"] In [8]: pd.to_datetime(data, utc=False) Out[8]: Index([2020-01-01 00:00:00+06:00, 2020-01-01 00:00:00+01:00], dtype='object') 新行为: In [9]: pd.to_datetime(data, utc=False) FutureWarning: In a future version of pandas, parsing datetimes with mixed time zones will raise a warning unless `utc=True`. Please specify `utc=True` to opt in to the new behaviour and silence this warning. To create a `Series` with mixed offsets and `object` dtype, please use `apply` and `datetime.datetime.strptime`. Index([2020-01-01 00:00:00+06:00, 2020-01-01 00:00:00+01:00], dtype='object') 为了消除此警告并避免在 pandas 的未来版本中出现错误,请指定utc=True: In [29]: data = ["2020-01-01 00:00:00+06:00", "2020-01-01 00:00:00+01:00"] In [30]: pd.to_datetime(data, utc=True) Out[30]: DatetimeIndex(['2019-12-31 18:00:00+00:00', '2019-12-31 23:00:00+00:00'], dtype='datetime64[ns, UTC]', freq=None) 要创建Series混合偏移量和object数据类型,请使用apply 和datetime.datetime.strptime: In [31]: import datetime as dt In [32]: data = ["2020-01-01 00:00:00+06:00", "2020-01-01 00:00:00+01:00"] In [33]: pd.Series(data).apply(lambda x: dt.datetime.strptime(x, '%Y-%m-%d %H:%M:%S%z')) Out[33]: 0 2020-01-01 00:00:00+06:00 1 2020-01-01 00:00:00+01:00 dtype: object 其他弃用# 已弃用DataFrameGroupBy.dtypes,请检查dtypes底层对象(GH 51045) 已弃用DataFrame._data和Series._data,请改用公共 API ( GH 33333 ) concat()当连接的任何对象的长度为 0 时已弃用的行为;过go,在确定结果数据类型时,空对象的数据类型被忽略,在未来的版本中,它们将不会(GH 39122) 已弃用Categorical.to_list(),请obj.tolist()改用 ( GH 51254 ) 已弃用DataFrameGroupBy.all()并且DataFrameGroupBy.any()带有 datetime64 或PeriodDtype值,与Series和DataFrame弃用(GH 34479)相匹配 axis=1在调用该方法之前已弃用DataFrame.ewm(), DataFrame.rolling(), , 转置 ( GH 51778 )DataFrame.expanding() axis=1在构造函数DataFrame.groupby()中已弃用Grouper,请frame.T.groupby(...)改为执行 ( GH 51203 ) 已弃用andbroadcast_axis中的关键字,在调用with之前向上转换( GH 51856 )Series.align()DataFrame.align()alignleft = DataFrame({col: left for col in right.columns}, index=right.index) ( GH 53956 )downcast中已弃用的关键字Index.fillna() 已弃用fill_method和limit中的关键字DataFrame.pct_change()、Series.pct_change()、DataFrameGroupBy.pct_change()和SeriesGroupBy.pct_change(), 显式调用 例如DataFrame.ffill()或DataFrame.bfill()在调用之前pct_change( GH 53491 ) 已弃用和中的method、limit和fill_axis关键字,而是在对齐结果上显式调用或( GH 51856 )DataFrame.align()Series.align()DataFrame.fillna()Series.fillna() 已弃用andquantile中的关键字,改名为( GH 52550 )Rolling.quantile()Expanding.quantile()q 已弃用接受切片DataFrame.take(),改为调用obj[slicer]或传递整数序列(GH 51539) DataFrame.idxmax()已弃用、DataFrame.idxmin()、Series.idxmax()、Series.idxmin()与 all-NA 条目或 any-NA 和 中的行为skipna=False;在未来的版本中,这些将提出ValueError(GH 51276) 已弃用对子类化的显式支持Index(GH 45289) 已弃用Series.agg()尝试对每个元素进行操作的函数,并且仅在逐元素操作失败时才Series对整体进行操作。Series将来,赋予的功能Series.agg()将始终仅在整体上运行Series。要保持当前行为,请Series.transform()改用 ( GH 53325 ) 不建议将函数列表中的函数设置为DataFrame.agg()尝试对 中的每个元素进行操作,并且如果按元素操作失败,则DataFrame仅对 的列进行操作。DataFrame要保持当前行为,请DataFrame.transform()改用 ( GH 53325 ) 已弃用传递DataFrameto DataFrame.from_records(),使用DataFrame.set_index()orDataFrame.drop()代替 ( GH 51353 ) 不推荐在将字符串解析为日期时间时默默删除无法识别的时区(GH 18702) 已弃用, , , , ,axis中的关键字( GH 51778 )DataFrame.ewm()Series.ewm()DataFrame.rolling()Series.rolling()DataFrame.expanding()Series.expanding() 已弃用( GH 51778 )axis中的DataFrame.resample()关键字Series.resample() 已弃用, , , , , , , ( GH 40988 )downcast中的关键字Series.interpolate()DataFrame.interpolate()Series.fillna()DataFrame.fillna()Series.ffill()DataFrame.ffill()Series.bfill()DataFrame.bfill() concat()已弃用两者的行为,在未来版本中,这将提高而不是截断为两个序列中较短的一个(GH 43485)len(keys) != len(objs) Series.argsort()弃用了存在 NA 值时的行为;在未来的版本中,这些将在最后排序,而不是给出 -1 ( GH 54219 ) 弃用了默认的observed=FalseinDataFrame.groupby()和Series.groupby();这将True在未来版本中默认为( GH 43999) 不赞成固定到聚合group.name中的每个组;SeriesGroupBy.aggregate()如果您的操作需要使用 groupby 键,请改为迭代 groupby 对象(GH 41090) 已弃用、、、、、、、、、、、、、 和axis中的关键字;用于在底层进行操作(GH 50405,GH 51046)DataFrameGroupBy.idxmax()DataFrameGroupBy.idxmin()DataFrameGroupBy.fillna()DataFrameGroupBy.take()DataFrameGroupBy.skew()DataFrameGroupBy.rank()DataFrameGroupBy.cumprod()DataFrameGroupBy.cumsum()DataFrameGroupBy.cummax()DataFrameGroupBy.cummin()DataFrameGroupBy.pct_change()DataFrameGroupBy.diff()DataFrameGroupBy.shift()DataFrameGroupBy.corrwith()axis=1DataFrame 当分组不是 DataFrame 的列时,不推荐在结果中包含分组DataFrameGroupBy(GH 49519)as_index=False 已弃用is_categorical_dtype(),请改用 ( GH 52527 )isinstance(obj.dtype, pd.CategoricalDtype) 已弃用is_datetime64tz_dtype(),请改为检查(GH 52607)isinstance(dtype, pd.DatetimeTZDtype) 已弃用is_int64_dtype(),请改为检查(GH 52564)dtype == np.dtype(np.int64) 已弃用is_interval_dtype(),请改为检查(GH 52607)isinstance(dtype, pd.IntervalDtype) 已弃用is_period_dtype(),请改为检查(GH 52642)isinstance(dtype, pd.PeriodDtype) 已弃用is_sparse(),请改为检查(GH 52642)isinstance(dtype, pd.SparseDtype) 已弃用Styler.applymap_index()。请改用新Styler.map_index()方法(GH 52708) 已弃用Styler.applymap()。请改用新Styler.map()方法(GH 52708) 已弃用DataFrame.applymap()。请改用新DataFrame.map()方法(GH 52353) 已弃用DataFrame.swapaxes()and Series.swapaxes(),使用DataFrame.transpose()orSeries.transpose()代替 ( GH 51946 ) freq构造函数中已弃用的参数PeriodArray,请改为传递dtype(GH 52462) 已弃用,允许在 中使用非标准输入take(),传递 a numpy.ndarray、ExtensionArray、Index或Series( GH 52981 ) isin()已弃用,允许在调用之前将、value_counts()、unique()、 、 case的非标准序列改为、、或factorize()之一( GH 52986 )numpy.ndarrayIndexExtensionArraySeries 已弃用的DataFrame归约行为sum,在未来版本中,这将在两个轴上运行prod,返回标量,而不是std像;请注意,这也会影响 numpy 函数,例如(GH 21597)varsemaxis=Noneaxis=0np.sum(df) concat()当列全部为 NA 时已弃用的行为DataFrame,在未来版本中,在确定结果 dtype 时不会丢弃这些行为(GH 40893) 已弃用的行为Series.dt.to_pydatetime(),在未来版本中,这将返回Series包含 pythondatetime对象而不是ndarray日期时间;这与其他属性的行为相匹配Series.dt(GH 20306) 已弃用pandas 对象和无数据类型序列(例如, )之间的逻辑操作(|, &, ),在操作之前将序列包装在或 NumPy 数组中( GH 51521)^listtupleSeries ( GH 52140 )convert_type中已弃用的参数Series.apply() 已弃用将字典传递给SeriesGroupBy.agg();而是传递聚合列表(GH 50684) 已弃用构造函数fastpath中的关键字Categorical,请改用Categorical.from_codes()( GH 20110 ) is_bool_dtype()已弃用返回bool 对象的Trueobject-dtype的行为( GH 52680 )Index 已弃用方法Series.bool()和DataFrame.bool()( GH 51749 ) 已弃用构造函数中的未使用closed和normalize关键字DatetimeIndex(GH 52628) closed构造函数中已弃用未使用的关键字TimedeltaIndex( GH 52628 ) 已弃用的两个具有不同索引的非布尔值之间的逻辑运算Series始终将结果强制为 bool 数据类型。在未来的版本中,这将保留输入的返回类型(GH 52500、GH 52538) 已弃用Periodwith PeriodDtypefreq BDay,请使用DatetimeIndexwith BDayfreq 代替 ( GH 53446 ) 已弃用value_counts(),请pd.Series(obj).value_counts()改用 ( GH 47862 ) 已弃用Series.first()和DataFrame.first();使用.loc(GH 45908)创建遮罩和过滤器 已弃用Series.interpolate()并DataFrame.interpolate()用于 object-dtype ( GH 53631 ) 已弃用Series.last()和DataFrame.last();使用.loc(GH 53692)创建遮罩和过滤器 已弃用允许任意fill_valuein SparseDtype,在未来版本中 需要fill_value与 兼容dtype.subtype,可以由该子类型保存的标量或NaN整数或布尔子类型(GH 23124) DataFrameGroupBy.quantile()已弃用允许在和中使用 bool dtype SeriesGroupBy.quantile(),与Series.quantile()和DataFrame.quantile()行为一致(GH 51424) 弃用的行为testing.assert_series_equal()并testing.assert_frame_equal()考虑类似 NA 的值(例如NaNvsNone作为等效值)(GH 52081) 已弃用的字节输入read_excel()。要读取文件路径,请使用字符串或类似路径的对象(GH 53767) 已弃用从标量数据构造SparseArray,而是传递序列(GH 53039) value当未在非字典中指定DataFrame.replace()并且Series.replace()使用非类似字典to_replace(GH 33302)时,不推荐回退到填充 已弃用文本 json 输入到read_json().将文字 json 字符串输入换行io.StringIO( GH 53409 ) 已弃用文字字符串输入到read_xml().将文字字符串/字节输入换行为io.StringIO/ io.BytesIO( GH 53767 ) 已弃用文字字符串/字节输入到read_html().将文字字符串/字节输入换行为io.StringIO/ io.BytesIO( GH 53767 ) 已弃用的选项mode.use_inf_as_na,将 inf 条目转换为NaN之前的条目 ( GH 51684 ) ( GH 53545 )obj中已弃用的参数DataFrameGroupBy.get_group() 已弃用的位置索引Series和Series.__getitem__(),在Series.__setitem__()未来版本中将ser[item]始终解释为标签,而不是位置(GH 50617)item .agg已弃用替换、.apply和中的内置函数和 NumPy 函数.transform;使用相应的字符串别名(例如"sum"forsum或np.sum)代替(GH 53425) ( GH 52536 )中已弃用的字符串T、t和表示单位Llto_timedelta() 弃用了 中的“method”和“limit”关键字.ExtensionArray.fillna,_pad_or_backfill改为实施 ( GH 53621 ) 已弃用and中的methodand关键字( GH 33302 )limitDataFrame.replace()Series.replace() 已弃用, , , , and上的method和关键字,使用or代替 ( GH 53394 )limitSeries.fillna()DataFrame.fillna()SeriesGroupBy.fillna()DataFrameGroupBy.fillna()Resampler.fillna()obj.bfill()obj.ffill() Series.__getitem__()弃用了, Series.__setitem__(), DataFrame.__getitem__(),的行为DataFrame.__setitem__(),在具有浮动数据类型索引的对象上使用整数切片,在未来版本中,这将被视为位置索引 ( GH 49612 ) 已弃用不支持的 datetime64 和 timedelta64 分辨率与pandas.array().支持的分辨率有:“s”、“ms”、“us”、“ns”分辨率 ( GH 53058 ) 已弃用的值"pad", "ffill", "bfill","backfill"和,使用Series.interpolate()或代替( GH 53581 )DataFrame.interpolate()obj.ffill()obj.bfill() Index.argmax()弃用了、Index.argmin()、Series.argmax()、Series.argmin()全 NA 和skipna=True/或任意 NA的行为并skipna=False返回 -1;在未来的版本中,这将提高ValueError(GH 33941,GH 33942) DataFrame.to_sql()已弃用允许except nameand中使用非关键字参数con( GH 54229 ) fill_value当将freqand传递fill_value给DataFrame.shift(), Series.shift()and时,已弃用默默忽略DataFrameGroupBy.shift();在未来的版本中,这将提高ValueError(GH 53832) 性能改进# concat()同质np.float64或数据类型的性能改进np.float32(GH 52685) factorize()不包含字符串的对象列的性能改进( GH 51921) read_orc()读取远程 URI 文件路径时的性能改进( GH 51609 ) 使用( GH 51609 )读取远程文件时的read_parquet()性能改进DataFrame.to_parquet()engine="pyarrow" read_parquet()使用时字符串列的性能改进use_nullable_dtypes=True(GH 47345) DataFrame.clip()和Series.clip()( GH 51472 ) 的性能改进 给出DataFrame.filter()时的性能改进( GH 52941)items 扩展数组数据类型DataFrame.first_valid_index()的性能改进( GH 51549)DataFrame.last_valid_index() 由扩展 dtype 支持DataFrame.where()时的性能改进( GH 51574)cond 性能MultiIndex.set_levels()改进(GHMultiIndex.set_codes() 51873 )verify_integrity=True MultiIndex.sortlevel()当ascending是列表时的性能改进( GH 51612) 性能改进Series.combine_first()( GH 51777 ) fillna()当数组不包含空值时的性能改进( GH 51635) isna()当数组具有零个空值或全部为空值时的性能改进( GH 51630) 将字符串解析为 dtype 时的性能改进boolean[pyarrow](GH 51730) Index从其他索引搜索切片时的性能改进( GH 51738) 性能改进concat()(GH 52291、GH 52290) Period的默认格式化程序 ( period_format) 现在明显更快(大约两倍)。这提高了str(Period)、repr(Period)、Period.strftime(fmt=None)()、 以及.PeriodArray.strftime(fmt=None)、.PeriodIndex.strftime(fmt=None)和的性能.PeriodIndex.format(fmt=None)。涉及或带有违约的to_csv操作也显着加速(GH 51459)PeriodArrayPeriodIndexdate_format 性能改进访问arrays.IntegerArrays.dtype& arrays.FloatingArray.dtype( GH 52998 ) DataFrameGroupBy/SeriesGroupBy聚合(例如DataFrameGroupBy.sum())的性能改进engine="numba"(GH 53731) DataFrame减少axis=1和扩展 dtypes的性能改进( GH 54341) DataFrame使用和扩展 dtypes 进行缩减和扩展的性能改进axis=None(GH 54308) 当索引/列值已排序时,多MultiIndex列操作(例如DataFrame.sort_values(),, )的性能改进( GH 53806)DataFrame.groupby()Series.unstack() 减少性能的改进Series(GH 52341) concat()当axis=1对象具有不同索引时的性能改进( GH 52541) concat()当串联轴为 a 时的性能改进MultiIndex( GH 53574 ) merge()PyArrow 支持的字符串的性能改进( GH 54443) 性能改进read_csv()( engine="c"GH 52632 ) ArrowExtensionArray.to_numpy()( GH 52525 )的性能改进 DataFrameGroupBy.groups()( GH 53088 )的性能改进 DataFrame.astype()当dtype是扩展 dtype时的性能改进( GH 54299) DataFrame.iloc()当输入是单个整数并且数据帧由扩展 dtypes 支持时的性能改进( GH 54508) DataFrame.isin()扩展数据类型的性能改进( GH 53514) DataFrame.loc()选择行和列时的性能改进( GH 53014) DataFrame.transpose()使用单个 PyArrow dtype 转置 DataFrame 时的性能改进( GH 54224) DataFrame.transpose()使用单个屏蔽数据类型转置 DataFrame 时的性能改进,例如Int64(GH 52836) Series.add()PyArrow 字符串和二进制数据类型的性能改进( GH 53150) 扩展数据类型的性能改进Series.corr()(GH 52502)Series.cov() ( GH 54667Series.drop_duplicates() )的性能改进。ArrowDtype PyArrow dtypes的性能改进Series.ffill()( GHSeries.bfill() 53950 )DataFrame.ffill()DataFrame.bfill() Series.str.get_dummies()PyArrow 支持的字符串的性能改进( GH 53655) Series.str.get()PyArrow 支持的字符串的性能改进( GH 53152) PyArrow 支持的字符串的Series.str.split()性能改进( GH 53585 )expand=True Series.to_numpy()当 dtype 为 NumPy float dtype 并且na_value为np.nan( GH 52430 )时的性能改进 astype()从 PyArrow 时间戳或持续时间数据类型转换为 NumPy 时的性能改进( GH 53326) MultiIndex各种集合和索引操作的性能改进( GH 53955) 通过避免进行不必要的验证(GH 53013),在对arrays.IntegerArray&进行各种重塑操作时提高性能arrays.FloatingArray 使用 PyArrow 时间戳和持续时间数据类型建立索引时的性能改进 ( GH 53368 ) 将数组传递给RangeIndex.take()、DataFrame.loc()或DataFrame.iloc()且 DataFrame 使用 RangeIndex 时的性能改进(GH 53387) Bug修复# 分类# CategoricalIndex.remove_categories()无法维护有序类别的错误( GH 53935)。 Series.astype()具有dtype="category"只读空值掩码的可空数组的错误( GH 53658) 中的错误,如果系列持有( GH 22527 ),则不使用Series.map()参数值。na_actionCategorical 类似日期时间# DatetimeIndex.map()现在na_action="ignore"按预期工作(GH 51644) DatetimeIndex.slice_indexer()KeyError现在,如果任一切片边界不在索引中,则引发非单调索引;此行为之前已被弃用,但处理方式不一致(GH 53983) 将对象乘以常量DateOffset时行为不一致的错误( GH 47953 )DateOffset 与( GH 46877 )一起date_range()时出现错误freqDateOffsetnanoseconds 将PyArrow 时间戳to_datetime()转换Series或DataFrame包含为 numpy 日期时间时出现错误( GH 52545 )arrays.ArrowExtensionArray DatetimeArray.map()和中的错误DatetimeIndex.map(),其中提供的可调用按数组操作而不是按元素操作(GH 51977) 针对 PyArrow 支持的日期(如 dtypes )DataFrame.to_sql()提出错误( GH 53854)ValueError Timestamp.date()、Timestamp.isocalendar()、Timestamp.timetuple()和中的错误Timestamp.toordinal()对于 Python 标准库的日期时间模块支持之外的输入返回不正确的结果 ( GH 53668 ) 接近Timestamp.round()实现边界的值会返回错误结果而不是引发错误OutOfBoundsDatetime(GH 51494) 从 datetime 或 timedelta 标量构造 aSeries或 的错误DataFrame总是推断纳秒分辨率而不是从输入推断(GH 52212) Timestamp从表示时间但没有日期的字符串构造 a 时出现错误,推断出错误的单位 ( GH 54097 ) 构建Timestamp带有ts_input=pd.NA提升的错误TypeError(GH 45481) 解析带有工作日但没有日期的日期时间字符串时出现错误,例如“2023 Sept Thu”错误地引发AttributeError而不是ValueError(GH 52659) Series当 dtype 是具有非纳秒分辨率提升的时区感知日期时间时,repr 中的错误OutOfBoundsDatetime(GH 54623) 时间增量# TimedeltaIndex除法或乘法错误.freq导致“0 天”而不是None( GH 51575 ) TimedeltaNumPytimedelta64对象未正确引发的错误ValueError(GH 52806) to_timedelta()转换Series或DataFrame包含ArrowDtype到pyarrow.durationNumPy 时出现错误timedelta64(GH 54298) 错误Timedelta.__hash__(),提高了OutOfBoundsTimedelta第二分辨率的某些大值(GH 54037) 接近Timedelta.round()实现边界的值会返回错误结果而不是引发错误OutOfBoundsTimedelta(GH 51494) 错误(GHTimedeltaIndex.map() 51644 )na_action="ignore" arrays.TimedeltaArray.map()和中的错误TimedeltaIndex.map(),其中提供的可调用按数组操作而不是按元素操作(GH 51977) 时区# infer_freq()引发时区感知时间戳的TypeError错误(GH 52456)Series 错误DatetimeTZDtype.base()总是返回纳秒分辨率的 NumPy dtype ( GH 52705 ) 数字# 当被减数为数值时,RangeIndex设置不正确的错误( GH 53255)step 屏蔽数据类型的错误Series.corr()和Series.cov()提升AttributeError(GH 51422) Series.kurt()调用Series.skew()全零的 NumPy 数据时返回 Python 类型而不是 NumPy 类型时的错误( GH 53482) 中的错误Series.mean(),DataFrame.mean()对象 dtype 值包含可转换为数字的字符串(例如“2”),返回不正确的数字结果;这些现在提高了TypeError(GH 36703,GH 44008) PyArrow 支持的 dtypes 的DataFrame.corrwith()提升错误( GH 52314 )NotImplementedError 错误DataFrame.size()并Series.size()返回 64 位整数而不是 Python int ( GH 52897 ) DateFrame.dot()返回数据object的 dtype时出现错误ArrowDtype( GH 53979 ) Series.any()、Series.all()、DataFrame.any()和中的错误DataFrame.all()已将默认值bool_only设置为None而不是False;此更改不应对用户产生影响(GH 53258) 屏蔽数据类型的错误Series.corr()和Series.cov()提升AttributeError(GH 51422) 包含可转换为数字(例如“2”)的字符串的 object-dtype 值中的错误返回不正确的数字Series.median()结果;DataFrame.median()这些现在提高了TypeError(GH 34671) Series.sum()将 dtype 转换uint64为int64( GH 53401 )时出现错误 转换# DataFrame.style.to_latex()如果DataFrame.style.to_html()DataFrame 包含的整数位数多于浮点双精度可以表示的错误( GH 52272) array()当给出单位为“s”、“us”或“ms”的datetime64or dtype 返回而不是or时出现错误(GH 52859)timedelta64NumpyExtensionArrayDatetimeArrayTimedeltaArray array()当给定空列表并且没有返回 dtype 时NumpyExtensionArray出现错误FloatingArray(GH 54371) ArrowDtype.numpy_dtype()返回非纳秒pyarrow.timestamp和类型的纳秒单位时出现错误pyarrow.duration( GH 51800 ) 当列的 dtype 为( GH 48526 )时DataFrame.__repr__()错误地引发 a 的错误TypeErrornp.record 设置时DataFrame.info()引发的错误( GH 51922)ValueErroruse_numba DataFrame.insert()提高TypeErrorif locis 时的错误np.int64(GH 53193) HDFStore.select()存储和检索时,错误会丢失大整数的精度( GH 54186) Series.astype()不支持的错误object_(GH 54251) 字符串# Series.str()迭代时没有引发错误TypeError(GH 54173) 字符串数据类型列中repr的错误( GH 54797)DataFrame` 间隔# IntervalIndex.get_indexer()并IntervalIndex.get_indexer_nonunique()提高 iftarget是只读数组(GH 53703) IntervalDtype删除时对象可以保持活动状态的错误( GH 54184) interval_range()浮点数step会因浮点伪像产生不正确间隔的错误 ( GH 54477 ) 索引# DataFrame.__setitem__()将 a 设置DataFrame为重复列时丢失 dtype的错误( GH 53143) 使用DataFrame.__setitem__()布尔掩码和DataFrame.putmask()混合非数字 dtypes 以及NaN错误提升以外的值的错误TypeError( GH 53291 ) 用作唯一元素DataFrame.iloc()时出现错误( GH 52234)nan 在dtype的预定义索引处分配时Series.loc()转换Series为错误( GH 48933 )np.dnarraySeriesobjectSeries 丢失的# 当is 、、或 时DataFrame.interpolate()无法跨数据填充的错误( GH 53898 )method"pad""ffill""bfill""backfill" DataFrame.interpolate()忽略空inplace时的错误DataFrame(GH 53199) Series.idxmin(), Series.idxmax(),中的错误DataFrame.idxmin(),DataFrame.idxmax()其DatetimeIndex索引包含NaT错误返回NaN而不是NaT( GH 43587 ) 错误Series.interpolate()且DataFrame.interpolate()无法引发无效downcast关键字,该关键字只能是Noneor "infer"( GH 53103 ) Series.interpolate()复杂数据类型中的错误DataFrame.interpolate()错误地无法填充NaN条目(GH 53635) 多重索引# MultiIndex.set_levels()不保留数据类型的错误Categorical( GH 52125 ) 显示MultiIndex带有长元素的错误(GH 52960) 输入/输出# DataFrame.to_orc()现在在给出ValueError非默认值时引发( GH 51828)Index DataFrame.to_sql()现在ValueError使用 SQLAlchemy 连接时名称参数留空时引发(GH 52675) 错误json_normalize()无法解析元数据字段列表类型(GH 37782) 当设置为列表或字典read_csv()时会出错的错误(GH 47961)parse_datesengine="pyarrow" 指定with时出现read_csv()with raise 错误(GH 53229)engine="pyarrow"dtypeindex_col 引发read_hdf()后无法正确关闭商店的错误( GH 52781)IndexError read_html()样式元素读入 DataFrame 的错误( GH 52197) read_html()尾部文本与包含样式的元素一起被删除的错误display:none(GH 51629) read_sql_table()读取视图时引发异常的错误( GH 52969) read_sql()读取具有相同列名的多个时区感知列时出现错误( GH 44421) read_xml()go除字符串数据中的空格时出现错误( GH 53811) 在多索引列的情况下错误应用了DataFrame.to_html()where的错误( GH 53885)colspace 具有复杂 dtypeDataFrame.to_html()的空转换引发的错误( GH 54167 )DataFrameValueError DataFrame.to_json()无法正确序列化非纳秒精度的DateTimeArray错误(GH 53686)DateTimeIndex 写入和读取空 Stata dta 文件时出现错误,其中数据类型信息丢失(GH 46240) bz2被视为硬性要求的错误( GH 53857) 时期# 当没有传递参数或传递参数时,构造函数中的错误PeriodDtype无法引发( GH 27388)TypeErrorNone 构造函数中的错误错误地为不同的输入PeriodDtype返回相同的值(GH 24121)normalizeDateOffset freq PeriodDtype构造函数中的错误ValueError而不是TypeError传递无效类型时的错误(GH 51790) PeriodDtype删除时对象可以保持活动状态的错误( GH 54184) read_csv()不将空字符串处理为空值的错误engine="pyarrow"(GH 52087) read_csv()返回objectdtype 列而不是返回float64dtypeengine="pyarrow"列时出现错误engine="pyarrow"(GH 52087) Period.now()不接受freq参数作为关键字参数的错误( GH 53369) 错误(GHPeriodIndex.map() 51644 )na_action="ignore" arrays.PeriodArray.map()和中的错误PeriodIndex.map(),其中提供的可调用按数组操作而不是按元素操作(GH 51977) 错误地允许构建 freqPeriod或PeriodDtype使用CustomBusinessDayfreq 的错误;使用BusinessDay(GH 52534) 绘图# 使用(GH 51953)Series.plot()调用时出现错误color=None 修复了使用( GH 53908 )DataFrame.plot.scatter()调用时出现的用户警告c="b" 分组/重新采样/滚动# 在空 DataFrameGroupBy 或 SeriesGroupBy 上使用时,、 、DataFrameGroupBy.idxmin()中SeriesGroupBy.idxmin()的错误返回错误的 dtype ( GH 51423 )DataFrameGroupBy.idxmax()SeriesGroupBy.idxmax() DataFrame.groupby.rank()传递na_option="bottom"或时可空数据类型的错误na_option="top"(GH 54206) 在( GH 51896 )上重新采样时错误地允许DataFrame.resample()非Series.resample()固定错误freqTimedeltaIndex 重新采样空数据时出现错误DataFrame.resample()并Series.resample()丢失时区(GH 53664) 当值位于轴之外时,错误DataFrame.resample()和Series.resample()位置对重新采样没有影响( GH 53662)origin 指定时加权滚动聚合中的错误min_periods=0( GH 51449 ) DataFrame.groupby()和where中的错误Series.groupby(),当分组Seriesor的索引DataFrame是DatetimeIndex, TimedeltaIndex or PeriodIndex,并且该groupby方法被赋予一个函数作为其第一个参数时,该函数对整个索引而不是索引的每个元素进行操作(GH 51979) DataFrameGroupBy.agg()不尊重列表的错误as_index=False(GH 52849) DataFrameGroupBy.apply()当输入DataFrame是作为DataFramegroupby 之后的子集([['a']]而不是['a'])并且给定的可调用返回的索引Series并非全部相同时,导致引发错误的错误(GH 52444) 选择多列并提供返回结果的函数时DataFrameGroupBy.apply()引发 a 的错误(GH 18930)TypeErrornp.ndarray 错误DataFrameGroupBy.groups()以及SeriesGroupBy.groups()日期时间键与另一个键结合产生了不正确数量的组键(GH 51158) 错误DataFrameGroupBy.quantile(),可能会使用(GH 53009)SeriesGroupBy.quantile()隐式对结果索引进行排序sort=False SeriesGroupBy.size()数据类型适用于具有或屏蔽数据类型np.int64的数据的错误(例如)(GH 53831)ArrowDtypeInt64 DataFrame.groupby()当按由单个元素组成的列表进行分组时,结果 groupby 对象上的列选择不会将名称作为元组返回(GH 53500) 使用 datetime64、timedelta64 或值(GH 52128、GH 53045)调用时出现错误DataFrameGroupBy.var()且SeriesGroupBy.var()无法引发TypeErrorPeriodDtype 错误地DataFrameGroupBy.resample()提高kind="period"(AttributeErrorGH 24103) Resampler.ohlc()空对象返回 aSeries而不是空的错误DataFrame(GH 42902) 错误SeriesGroupBy.count()以及DataFrameGroupBy.count()数据类型将用于具有或屏蔽数据类型np.int64的数据(例如)(GH 53831)ArrowDtypeInt64 使用或不子集列时执行列选择时SeriesGroupBy.nth()和之后的错误( GH 53518)DataFrameGroupBy.nth()dropna="any"dropna="all" 使用时执行列选择后出现错误SeriesGroupBy.nth()并引发错误或导致行被删除(GH 53518)DataFrameGroupBy.nth()dropna="any"dropna="all" 错误将SeriesGroupBy.sum()和分别代替和( GH 53606 )DataFrameGroupBy.sum()np.inf + np.inf(-np.inf) + (-np.inf)np.nannp.inf-np.inf Series.groupby()当分组Series有一个DatetimeIndex索引和一个Series名称为月份的参数时引发错误的错误by(GH 48509) 重塑# 当一列具有dtype 时concat()强制转换为dtype 时出现错误( GH 53702 )objectpa.null() 错误crosstab()何时dropna=False不会保留np.nan在结果中(GH 10772) melt()列variable丢失扩展 dtypes的错误( GH 54297) 扩展数据类型merge_asof()提升中的错误( GH 52904)KeyError merge_asof()引发ValueError只读 ndarray 支持的数据时出现错误( GH 53513 ) merge_asof()索引数据类型不匹配left_index=True的错误right_index=True在某些情况下给出不正确的结果而不是提升MergeError(GH 53870) merge()合并整数ExtensionDtype和浮点 NumPy dtype 提升时出现的错误TypeError( GH 46178 ) 当传入类似 dist 的参数时,非唯一列中DataFrame.agg()和非唯一列上的错误将返回不正确的类型( GH 51099)Series.agg() DataFrame.combine_first()如果为空则忽略其他列的错误other(GH 53792) DataFrame.idxmin()和中的错误DataFrame.idxmax(),其中空帧的轴数据类型将丢失(GH 53265) 具有单级DataFrame.merge()时无法正确合并的错误( GH 52331)MultiIndex DataFrame.stack()当列是 a 并且框架包含混合数据类型时丢失扩展数据类型的错误MultiIndex(GH 45740) DataFrame.stack()按字典顺序对列进行排序时出现错误( GH 53786) DataFrame.transpose()推断对象列的 dtype时出现错误( GH 51546 ) 将dtypeSeries.combine_first()转换为非常大的整数并丢失精度时出现错误( GH 51764 )int64float64 连接空对象时出现错误DataFrame,其中连接索引将是 aRangeIndex而不是连接索引类型(GH 52777) 稀疏# 当给定其子类型不兼容时,构造函数中的错误SparseDtype无法引发,该子类型必须是 NumPy dtype ( GH 53160 )TypeErrordtype 错误arrays.SparseArray.map()允许填充值包含在稀疏值中(GH 52095) 扩展数组# ArrowStringArray构造函数中的错误会ValueError因字符串的字典类型而引发(GH 54074) 在 dict 中给出时,构造函数中的错误DataFrame不使用扩展名 dtype 进行复制( GH 53744)Series ArrowExtensionArray将 pandas 非纳秒时间对象从非零值转换为零值时出现错误( GH 53171 ) Series.quantile()PyArrow 时间类型提升的错误ArrowInvalid(GH 52678) 使用dtype ( GH 52471 )Series.rank()返回小值的错误顺序的错误Float64 Series.unique()布尔值ArrowDtype的错误NA(GH 54667) 错误__iter__()并__getitem__()返回非纳米数据类型的 python datetime 和 timedelta 对象 ( GH 53326 ) 为具有多个块的类型factorize()返回不正确的唯一值时出现错误( GH 54844 )pyarrow.dictionarypyarrow.chunked_array ExtensionArray将子类传递给关键字时出现错误dtype。现在,这将引发 aUserWarning来鼓励通过实例(GH 31356,GH 54592) 当列有一个带有 aDataFrame时 repr 无法工作的错误( GH 54063 )ArrowDtypepyarrow.ExtensionDtype __from_arrow__屏蔽 ExtensionDtypes 的方法(例如Float64Dtype,BooleanDtype)不接受 PyArrow 类型数组pyarrow.null()(GH 52223)的错误 造型器# 在( GH 52728 )Styler._copy()的子类中调用重写方法时出现错误Styler 元数据# DataFrame.max()修复了, DataFrame.min(), DataFrame.prod(), DataFrame.mean(), Series.mode(), DataFrame.median(), DataFrame.sem(), DataFrame.skew(), DataFrame.kurt()( GH 28283 )中的元数据传播 DataFrame.squeeze()修复了、 和DataFrame.describe()( GH 28283 )中的元数据传播 DataFrame.std()修复了( GH 28283 )中的元数据传播 其他# 当值存在时,FloatingArray.__contains__项目NaN错误地返回(GH 52840)FalseNaN 当存在值时复杂数据类型的数据出现错误DataFrame并引发错误( GH 53627)SeriesNaN DatetimeIndex随着时间传递的索引位置中的错误repr不打印时间是午夜和非基于日期的频率(GH 53470) 错误testing.assert_frame_equal()并testing.assert_series_equal()现在抛出两个不等集的断言错误(GH 51727) testing.assert_frame_equal()即使被要求不检查索引类型,也会检查类别 dtypes中的错误( GH 52126) 错误api.interchange.from_dataframe()不尊重allow_copy争论(GH 54322) api.interchange.from_dataframe()在与包含空值的非 Pandas tz 感知数据交换期间引发错误( GH 54287) api.interchange.from_dataframe()转换空 DataFrame 对象时出现错误( GH 53155 ) from_dummies()结果与Index原始结果不匹配的错误Index(GH 54300) from_dummies()结果数据始终为objectdtype 而不是列的 dtype 的错误( GH 54300 ) DataFrameGroupBy.first()、DataFrameGroupBy.last()、SeriesGroupBy.first()和中的错误SeriesGroupBy.last(),其中将返回空组np.nan而不是相应的ExtensionArrayNA 值(GH 39098) DataFrame.pivot_table()将整数的平均值转换回整数时出现错误( GH 16676) 错误应DataFrame.reindex()使用错误推断的dtypefill_value来推断( GH 52586 )ExtensionDtypeobject DataFrame.shift()在单列axis=1上出现错误,给出不正确的结果(GH 53832)DataFrameExtensionDtype Index.sort_values()传递a 时出现错误key(GH 52764) Series.align()、DataFrame.align()、Series.reindex()、DataFrame.reindex()、Series.interpolate()、中的错误DataFrame.interpolate(),错误地未能使用 method=”asfreq” 引发(GH 53620) 当传递Series.argsort()无效值时未能引发错误( GH 54257)axis 向空系列提供可调用项时出现错误Series.map(),返回的系列具有objectdtype。它现在保留原始的数据类型(GH 52384) Series.memory_usage()当一系列对象抛出错误并且返回值不正确时出现错误deep=True,因为它没有考虑 GC 更正(GH 51858) period_range()当 freq 因参数不正确而未传递时,默认行为中存在错误( GH 53687) 修复了( GH 52898 )的错误__name__属性pandas._libs.json 贡献者# 共有 266 人为此版本贡献了补丁。名字带有“+”的人首次贡献了补丁。 AG+ 阿尔尼·科斯凯拉 阿德里安·达历山德罗 + 阿德里安·鲁奥特 + 艾哈迈德+ 艾多斯·卡纳皮亚诺夫 + 亚历克斯·马林斯 亚历山大·塞勒 + 阿里·阿斯加尔 + 关佳丽 阿曼达·比齐诺托 + 安德烈斯·阿尔加巴 + 安吉拉·徐 + 阿尼鲁德·赫格德 + 安东尼·埃夫莫福普洛斯 + 安努什卡·比什诺伊 阿诺·查诺万 + 阿尔乔姆·沃罗比耶夫 + 艾莉亚·萨卡 + 阿什温·斯里纳斯 欧阳奥斯汀 + 奥斯汀·伯内特 + 熊+ 本·曼戈尔德 + 贝尔纳多·加梅罗 + 博伊德·凯恩 + 布雷扬·亚历山大·穆尼奥斯 B + 布罗克 切坦0402 + 克里斯·卡里尼 克里斯托夫·考夫曼 克拉克-W+ 康拉德·麦基股票 科里·巴特尔海默 + 库尔顿·图尔 + D067751 + 丹尼尔·艾萨克 丹尼尔·尼科洛迪 + 大卫·塞缪尔 + 大卫·塞弗特 + 迪·莱昂 + 德亚·玛丽亚·莱昂 迪普亚曼·达塔 丹尼斯·萨波日尼科夫 + 阿库提陀罗尼 + 迪米·格拉玛提卡基斯 + 德克·乌布利希 + 德米特里·谢梅托夫 + 多米尼克·伯杰 艾夫坎·S·格克泰佩 + 埃格·厄兹古罗格鲁 伊莱·施瓦茨 二弟+ 法布里齐奥·普里梅拉诺 + 法昆多·巴蒂斯塔 + 李芳辰 费利佩·马翁 + 弗朗西斯+ 未来程序员+ 加布里埃尔·卡贝 + 盖坦·拉梅特 + 吉安卢卡·菲卡雷利 戈德威尔·阿格贝霍努 + 纪尧姆·勒梅特 郭慈 古斯塔沃·巴尔加斯 + 哈米德雷扎·萨纳伊 + 快乐马 + 哈拉尔德·胡苏姆 + 乌戈·范·凯梅纳德 伊多·罗南 + 欧夫·勒斯蒂格 JHM 达比郡 JHM 达比郡 (iMac) 杰杰+ 贾罗德·米尔曼 周杰伦+ 杰夫·雷巴克 杰西卡·格林 + 张嘉伟 + 肖金丽 + 葛乔+ 乔纳·萨森哈根 + 乔纳斯·哈格 乔里斯·范登博什 约书亚·肖 + 朱利安·巴迪罗 朱利安·奥尔蒂斯 + 朱利安·帕拉德 + 贾斯汀·泰森 + 贾斯图斯·马金 卡比尔·克里希纳 + 康素敏 克图·帕特尔 + 凯文+ 凯文·安德森 凯文·简·安克 凯文·克莱因 + 凯文·谢泼德 克斯特亚·法伯 LM+ 拉斯·连恩 (Lars Lien) 脚踝 + 劳伦斯·米切尔 蔡立伟+ 卢伊克·迪里多卢 卢西亚娜·索洛扎诺 + 卢克·曼利 伐木工(又名杰克) 马拉特·科皮尤克 + 马克·加西亚 马可·爱德华·戈雷利 马可·戈雷利 玛丽亚·特伦茨克 + 马文·格拉弗特 + 马特乌什·索科乌 + 马特·理查兹 马修·巴伯 + 马修·罗斯克 马图斯·瓦洛 + 米娅·雷默 + 迈克尔·特里 + 迈克尔·蒂曼 + 米拉德·马尼·朱 + 迈尔斯·克兰默 + 米里贾H + 美游+ 娜塔莉亚·莫基耶娃 内森·戈德鲍姆 + 尼克劳斯·罗奇 + 尼古拉斯·卡梅尼施 + 尼古拉·博耶夫 + 尼拉夫 尼舒·乔杜里 诺亚·塔米尔 诺伊·哈南 + 努曼+ 努曼·伊贾兹 + 奥马尔·艾尔巴兹 + 熊猫开发团队 冻糕加萨娜 帕蒂 帕特里克·赫夫勒 帕特里克·施莱特 + 帕维尔·克兰兹伯格 + 菲利普 菲利普·迈耶 + 普拉纳夫·赛布尚·拉武里 巴吞P+ 拉胡尔·西洛尼亚 + 拉贾斯维·维纳亚克 + 拉贾·苏布拉·慕克吉 + 拉尔夫·戈默斯 拉夫·斯库 陈丽贝卡+ 雷纳托·科特里姆·马西尔 + 礼萨(米拉德)马尼茹 + 理查德·沙德拉赫 里尼克·雷迪 + 罗伯特·卢斯+ 罗纳尔多+ 魏瑞利 + 苏米亚迪普·马尔 + 桑吉斯·乔坎 + 赛义德·凯泽·阿里 + 斯科特竖琴 + 硒+ 沙什瓦·阿格拉瓦尔 西马尔·巴西 + 西蒙·布鲁格曼 + 西蒙·霍金斯 西蒙·霍克斯布罗·汉森 斯诺夫杨+ 排序法穆德基普 + 斯特凡·克劳奇克 斯蒂芬妮·莫林 孙燕姿 斯泰利奥斯·佩特拉基斯 + 斯蒂恩·范霍伊 斯文 西尔万·玛丽 西尔万·玛丽 特尔吉·彼得森 蒂埃里·莫伊桑 托马斯 托马斯·卡斯威尔 托马斯·格兰杰 托马斯·李 托马斯·弗兰肯 + 宋天野 + 蒂姆·霍夫曼 蒂姆·洛德霍斯 + 蒂姆·斯瓦斯特 泰门·尤尔希奇 + 托尔克-KU + 托马斯·帕夫利克 + 托里+ 托斯顿·沃特温 特拉维斯·吉布斯 + 翁贝托·法西 + 瓦莱里+ 凡迈胡 + 维克多·莫莫杜 + 维杰·维迪亚纳坦 + 沃姆V+ 威廉·安德烈 威廉·艾德 沃尔夫·贝伦霍夫 + 肖媛 姚晓 亚辛塔塔尔 李亚欣 + 易伟+ 尤利娅+ 尤沙斯·辛格 + 扎克·布雷格 + 王正波 上面1 + 艾哈迈德2901 + 阿萨法姆+ 奥德森 八月-滕兰+ 布纳德生 + 厘米克+ cnguyen-03 + 可可+ 依赖机器人[机器人] 吉普莱斯 + github-actions[机器人] 格迈瓦尔德 + 格莫拉德+ 杰布罗克门德尔 凯瑟琳杭 kevx82 + 利亚2710 + 梁3zy22 + 尔塔太郎 + 卢索洛兹 + m-ganko + 姆克莱普施+ 马特肯尼 + 姆拉斯特古 + 纳布多尼+ 奥马尔·埃尔巴兹 + 保罗里斯+ 阴茎勃起症 + 波塔普75 + 预提交-ci[bot] + 拉纳森+ 拉吉塔帕 + 拉姆维克拉姆斯 + 丽贝卡·帕尔默 红迪尔格1 + rmhowe425 + 世嘉贸易+ 什特肯+ 瑞士+ 泰泽豪 tnt马修斯+ tpaxman + 泽豪 + V-麦库蒂尼奥 + 冈扎尔 + 约纳舒布 尤斯哈斯+ 阿达姆·利帕伊 什捷潘·穆勒 +