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)NaTとdatetime.dateオブジェクト間の比較が誤ってTrueを返す回帰を修正 (GH 39151)DataFramesでNumPy
accumulate()ufuncを呼び出す際の回帰を修正(例:np.maximum.accumulate(df)) (GH 39259)objectdtypeのfloatのような文字列のreprで、小数点の後に続く0が切り捨てられる回帰を修正 (GH 38708)PyArrowバージョン[0.16.0, 1.0.0)で
AttributeErrorを発生させた回帰を修正 (GH 38801)Indexまたは列が混在したdtypeを持つ場合にcheck_like=Trueでpandas.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=Falseでpandas.testing.assert_index_equal()がTypeErrorを発生させるバグを修正 (GH 39168)
その他#
DataFrameおよびSeriesの非推奨属性_AXIS_NAMESおよび_AXIS_NUMBERSは、dirまたはinspect.getmembers呼び出しに表示されなくなります (GH 38740)numbaからの
AttributeErrorを回避するため、fastparquetの最小バージョンを0.4.0に引き上げました (GH 38344)テストの失敗を回避するため、pymysqlの最小バージョンを0.8.1に引き上げました (GH 38344)
Python 3.9.1のMacOS 11でのビルド失敗を修正 (GH 38766)
testing.assert_frame_equal()およびtesting.assert_series_equal()の、後方互換性のないcheck_freq引数への参照をpandas 1.1.0の新機能に追加しました (GH 34050)
貢献者#
このリリースには合計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
パトリック