1.5.1 の新機能 (2022年10月19日)#

これらは pandas 1.5.1 での変更点です。他のバージョンの pandas を含む完全な変更履歴については、リリースノートを参照してください。

カテゴリカルグルーパを使用する groupby の動作 (GH 48645)#

pandas の 1.5 より前のバージョンでは、グルーパがカテゴリカル dtype の場合、dropna=False を指定した groupby でも NA 値が削除されていました。この修正は 1.5 で試みられましたが、groupbyobserved=Falsedropna=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 の場合に NoneNaN にキャストする 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_sentinelNone でなく sort=False の場合の factorize() のパフォーマンス回帰を修正 (GH 48620)

  • DataFrame.to_sql() で提供されたテーブル名とデータベースで実際に使用されたテーブル名が一致しない場合に、警告が発せられる際に AttributeError が発生する回帰を修正 (GH 48733)

  • arg がナノ秒を含む日付文字列で、format%f が含まれている場合に ValueError を発生させる to_datetime() の回帰を修正 (GH 48767)

  • Categoricalcheck_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)

  • ExcelWriterbook 属性を設定できなくなった回帰を修正。ただし、この属性の設定は非推奨となり、将来のバージョンの pandas でこの機能は削除されます (GH 48780)

  • method="spearman" を使用して結合されたデータの相関を計算する際の DataFrame.corrwith() の回帰を修正 (GH 48826)

バグ修正#

その他#

  • 引数がキーワードオンリーになるという警告を持つ関数を内省する際に、非推奨のシグネチャが表示されないようにする (GH 48692)

貢献者#

このリリースには合計16人がパッチを貢献しました。名前の横に「+」が付いている人は初めてパッチを貢献しました。

  • アメイ・パテル +

  • ディーパック・シロヒワル +

  • デニス・チュクウンタ

  • ガウラフ・シェニ

  • ヒマンシュ・ワーグ +

  • ロレンツォ・ヴァイニグリ +

  • Marc Garcia

  • Marco Edward Gorelli

  • Matthew Roeschke

  • MeeseeksMachine

  • ノア・タミール

  • Pandas Development Team

  • Patrick Hoefler

  • Richard Shadrach

  • シャンタヌ

  • トルステン・ヴェルトワイン