1.5.1 の新機能 (2022年10月19日)#
これらは pandas 1.5.1 での変更点です。他のバージョンの pandas を含む完全な変更履歴については、リリースノートを参照してください。
カテゴリカルグルーパを使用する groupby の動作 (GH 48645)#
pandas の 1.5 より前のバージョンでは、グルーパがカテゴリカル dtype の場合、dropna=False を指定した groupby でも NA 値が削除されていました。この修正は 1.5 で試みられましたが、groupby に observed=False と dropna=False を渡すと観測されたカテゴリのみが返されるという回帰が導入されました。dropna=False のバグを修正するパッチが observed=False と互換性がないことが判明し、最善の解決策は dropna=False バグを再導入する代わりに正しい observed=False の動作を復元することであると決定されました。
In [1]: df = pd.DataFrame(
...: {
...: "x": pd.Categorical([1, None], categories=[1, 2, 3]),
...: "y": [3, 4],
...: }
...: )
...:
In [2]: df
Out[2]:
x y
0 1 3
1 NaN 4
1.5.0 の動作:
In [3]: # Correct behavior, NA values are not dropped
df.groupby("x", observed=True, dropna=False).sum()
Out[3]:
y
x
1 3
NaN 4
In [4]: # Incorrect behavior, only observed categories present
df.groupby("x", observed=False, dropna=False).sum()
Out[4]:
y
x
1 3
NaN 4
1.5.1 の動作:
# Incorrect behavior, NA values are dropped
In [3]: df.groupby("x", observed=True, dropna=False).sum()
Out[3]:
y
x
1 3
NaN 4
# Correct behavior, unobserved categories present (NA values still dropped)
In [4]: df.groupby("x", observed=False, dropna=False).sum()
Out[4]:
y
x
1 3
2 0
3 0
NaN 4
修正されたリグレッション#
オブジェクト dtype の場合に
NoneをNaNにキャストするSeries.__setitem__()の回帰を修正 (GH 48665)TrueインデクサのみのDataFrameとして値を設定する際のDataFrame.loc()の回帰を修正 (GH 48701)既に読み込まれている UTF-8 ファイルハンドルを使用する際に
EmptyDataErrorを引き起こすread_csv()の回帰 (GH 48646)utc=Trueかつargにタイムゾーンなしとタイムゾーンありの引数が含まれている場合にValueErrorを発生させるto_datetime()の回帰 (GH 48678)空の
DataFrameを設定する際にFutureWarningを発生させるDataFrame.loc()の回帰を修正 (GH 48480)結果に
NAが含まれる場合にTypeErrorを発生させるDataFrame.describe()の回帰を修正 (GH 48778)kind="scatter"の場合に無効なcolormapを無視するDataFrame.plot()の回帰を修正 (GH 48726)MultiIndex.values()が基になるIndexオブジェクトのfreq属性をリセットする回帰を修正 (GH 49054)na_sentinelがNoneでなくsort=Falseの場合のfactorize()のパフォーマンス回帰を修正 (GH 48620)DataFrame.to_sql()で提供されたテーブル名とデータベースで実際に使用されたテーブル名が一致しない場合に、警告が発せられる際にAttributeErrorが発生する回帰を修正 (GH 48733)argがナノ秒を含む日付文字列で、formatに%fが含まれている場合にValueErrorを発生させるto_datetime()の回帰を修正 (GH 48767)Categoricalとcheck_like=Trueを持つMultiIndexに対してtesting.assert_frame_equal()が発生する回帰を修正 (GH 48975)datetime64[ns]dtype とinplace=Trueの場合に間違った値を置き換えるDataFrame.fillna()の回帰を修正 (GH 48863)axis=1の場合にDataFrameGroupBy.size()が Series を返さない問題を修正 (GH 48738)ユーザー定義関数が空のデータフレームで呼び出される場合の
DataFrameGroupBy.apply()の回帰を修正 (GH 47985)キーワード引数としてゼロ以外の
axisを渡す場合のDataFrame.apply()の回帰を修正 (GH 48656)グルーパが nullable データ型 (例:
Int64) または PyArrow をバックエンドとする文字列配列であり、null 値を含み、dropna=Falseの場合のSeries.groupby()およびDataFrame.groupby()の回帰を修正 (GH 48794)異なる dtype を持つ
Series.isin()のパフォーマンス回帰を修正 (GH 49162)ファイル名が
bytesとして指定された場合にDataFrame.to_parquet()が発生する回帰を修正 (GH 48944)ExcelWriterでbook属性を設定できなくなった回帰を修正。ただし、この属性の設定は非推奨となり、将来のバージョンの pandas でこの機能は削除されます (GH 48780)method="spearman"を使用して結合されたデータの相関を計算する際のDataFrame.corrwith()の回帰を修正 (GH 48826)
バグ修正#
整数キーとブール値
Indexの場合に位置指定にフォールバックしないSeries.__getitem__()のバグ (GH 48653)ブール値インデックスで
AssertionErrorを発生させるDataFrame.to_hdf()のバグ (GH 48667)一致しない
NAを持つ拡張配列に対してValueErrorを発生させるtesting.assert_index_equal()のバグ (GH 48608)日時列をインデックスとして設定する際に予期せぬ
FutureWarningを発生させるDataFrame.pivot_table()のバグ (GH 48683)ブール値スパース列を持つ
DataFrameで呼び出されたときに不要なFutureWarningを発するDataFrame.sort_values()のバグ (GH 48784)無効なオブジェクトとの比較演算子で
NotImplementedErrorを発生させないarrays.ArrowExtensionArrayのバグ (GH 48833)
その他#
引数がキーワードオンリーになるという警告を持つ関数を内省する際に、非推奨のシグネチャが表示されないようにする (GH 48692)
貢献者#
このリリースには合計16人がパッチを貢献しました。名前の横に「+」が付いている人は初めてパッチを貢献しました。
アメイ・パテル +
ディーパック・シロヒワル +
デニス・チュクウンタ
ガウラフ・シェニ
ヒマンシュ・ワーグ +
ロレンツォ・ヴァイニグリ +
Marc Garcia
Marco Edward Gorelli
Matthew Roeschke
MeeseeksMachine
ノア・タミール
Pandas Development Team
Patrick Hoefler
Richard Shadrach
シャンタヌ
トルステン・ヴェルトワイン