1.2.1の新機能 (2021年1月20日)#

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

修正されたリグレッション#

  • chunksizeよりも行数が多い場合に破損したzipファイルを作成するto_csv()の回帰を修正 (GH 38714)

  • to_csv()codecs.StreamReaderWriterをテキストモードではなくバイナリモードで開く回帰を修正 (GH 39247)

  • エンコーディングが指定されていない場合にエンコーディングエラーポリシー (errors) がデフォルトで"replace"にならなかったread_csv()およびその他の読み取り関数の回帰を修正 (GH 38989)

  • 非生バイトファイルハンドルを使用するread_excel()の回帰を修正 (GH 38788)

  • エラーが発生したときに作成されたファイルを削除しないDataFrame.to_stata()の回帰を修正 (GH 39202)

  • DataFrameを拡張し、新しい列が"0 - name"型である場合にDataFrame.__setitem__ValueErrorを発生させる回帰を修正 (GH 39010)

  • DataFrameにソートされていないMultiIndex列があり、インデクサーがスカラである場合にDataFrame.loc()で設定するとValueErrorを発生させる回帰を修正 (GH 38601)

  • MultiIndexとリストのような列インデクサーを使用してDataFrameを拡大する際にDataFrame.loc()で設定するとKeyErrorを発生させる回帰を修正 (GH 39147)

  • Categoricalグループ化列を持つgroupby()grouped.indicesに対して未使用のカテゴリを表示しない回帰を修正 (GH 38642)

  • 非数値列が存在すると、それらが削除される代わりにエラーが発生するDataFrameGroupBy.sem()およびSeriesGroupBy.sem()の回帰を修正 (GH 38774)

  • int8およびint16列に対してDataFrameGroupBy.diff()がエラーを発生させる回帰を修正 (GH 39050)

  • 非数値値に対して失敗する可能性があるExtensionDTypeを集約する際のDataFrame.groupby()の回帰を修正 (GH 38980)

  • Rolling.skew()およびRolling.kurt()がオブジェクトをインプレースで変更する回帰を修正 (GH 38908)

  • tz対応datetime64列に対して結果を返さないDataFrame.any()およびDataFrame.all()の回帰を修正 (GH 38723)

  • 適用関数でstrアクセサを使用するaxis=1を指定したDataFrame.apply()の回帰を修正 (GH 38979)

  • DataFrameのdtypeがbytesの場合にDataFrame.replace()ValueErrorを発生させる回帰を修正 (GH 38900)

  • datetime64[ns, UTC]dtypeでRecursionErrorを発生させるSeries.fillna()の回帰を修正 (GH 38851)

  • NaTdatetime.dateオブジェクト間の比較が誤ってTrueを返す回帰を修正 (GH 39151)

  • DataFramesでNumPy accumulate() ufuncを呼び出す際の回帰を修正(例: np.maximum.accumulate(df)) (GH 39259)

  • object dtypeのfloatのような文字列のreprで、小数点の後に続く0が切り捨てられる回帰を修正 (GH 38708)

  • PyArrowバージョン[0.16.0, 1.0.0)でAttributeErrorを発生させた回帰を修正 (GH 38801)

  • Indexまたは列が混在したdtypeを持つ場合にcheck_like=Truepandas.testing.assert_frame_equal()TypeErrorを発生させる回帰を修正 (GH 39168)

pandas 1.2.0でいくつかのプロット関連の回帰を引き起こしたコミットを元に戻しました (GH 38969, GH 38736, GH 38865, GH 38947, GH 39126)。その結果、pandas 1.2.0で修正されたと報告されたバグ(棒グラフでの目盛りラベルの不整合に関するもの)が再び発生しています (GH 26186, GH 11465)

非アラインドなDataFrameでのNumPy ufuncの呼び出し#

pandas 1.2.0より前では、非アラインドなDataFrame(またはDataFrame/Seriesの組み合わせ)でNumPy ufuncを呼び出すと、インデックスが無視され、入力は形状のみで一致し、結果には最初のDataFrameのインデックス/列が使用されていました。

In [1]: df1 = pd.DataFrame({"a": [1, 2], "b": [3, 4]}, index=[0, 1])
In [2]: df2 = pd.DataFrame({"a": [1, 2], "b": [3, 4]}, index=[1, 2])
In [3]: df1
Out[3]:
   a  b
0  1  3
1  2  4
In [4]: df2
Out[4]:
   a  b
1  1  3
2  2  4

In [5]: np.add(df1, df2)
Out[5]:
   a  b
0  2  6
1  4  8

これは、まず入力をアラインする他のpandas操作とは対照的です。

In [6]: df1 + df2
Out[6]:
     a    b
0  NaN  NaN
1  3.0  7.0
2  NaN  NaN

pandas 1.2.0では、DataFrameでNumPy ufuncが呼び出される方法をリファクタリングし、これにより、他のpandas操作やSeriesオブジェクトで呼び出されるufuncと同様に、最初に入力がアラインされるようになりました (GH 39184)。

pandas 1.2.1では、破壊的な変更を避けるため、以前の動作を復元しましたが、非アラインドな入力を持つnp.add(df1, df2)の上記の例は警告を発するようになり、将来のpandas 2.0リリースでは最初に入力がアラインされるようになります (GH 39184)。SeriesオブジェクトでNumPy ufuncを呼び出す(例: np.add(s1, s2))場合は、すでにアラインされ、引き続きそのようになります。

警告を避け、インデックスを無視するという現在の動作を維持するには、引数のいずれかをNumPy配列に変換します。

In [7]: np.add(df1, np.asarray(df2))
Out[7]:
   a  b
0  2  6
1  4  8

将来の動作を得て警告を抑制するには、引数をufuncに渡す前に手動でアラインすることができます。

In [8]: df1, df2 = df1.align(df2)
In [9]: np.add(df1, df2)
Out[9]:
     a    b
0  NaN  NaN
1  3.0  7.0
2  NaN  NaN

バグ修正#

  • float_precision="high"を指定したread_csv()のバグにより、セグメンテーションフォールトまたは長い指数文字列の誤った解析が発生しました。これは、pandas 1.2.0でfloat_precisionのデフォルトが変更されたため、一部のケースで回帰を引き起こしました (GH 38753)

  • 初期化中にcsv.ErrorまたはUnicodeDecodeErrorが発生したときに開かれたファイルハンドルを閉じないread_csv()のバグを修正 (GH 39024)

  • Indexが混在したdtypeを持つ場合にcheck_order=Falsepandas.testing.assert_index_equal()TypeErrorを発生させるバグを修正 (GH 39168)

その他#

貢献者#

このリリースには合計20名がパッチを貢献しました。「+」が付いている方は今回初めてパッチを貢献しました。

  • Ada Draginda +

  • Andrew Wieteska

  • Bryan Cutler

  • ファンチェン・リー

  • Joris Van den Bossche

  • Matthew Roeschke

  • Matthew Zeitlin +

  • MeeseeksMachine

  • Micael Jarniac

  • Omar Afifi +

  • Pandas Development Team

  • Richard Shadrach

  • Simon Hawkins

  • テルジ・ピーターセン

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

  • WANG Aiyong

  • jbrockmendel

  • kylekeppler

  • mzeitlin11

  • パトリック