What’s new in 0.23.1 (2018年6月12日)#
これは0.23.xシリーズのマイナーなバグ修正リリースで、いくつかの小さなリグレッション修正とバグ修正が含まれています。すべてのユーザーにこのバージョンへのアップグレードをお勧めします。
警告
2019年1月1日以降、pandasの機能リリースはPython 3のみをサポートします。詳細については、Python 2.7のサポート終了を参照してください。
v0.23.1 の新機能
修正されたリグレッション#
Series と datetime.date の比較
datetime を保持する Series と datetime.date オブジェクトの比較に関する 0.23.0 の変更を元に戻しました (GH 21152)。pandas 0.22 以前では、datetime を保持する Series と datetime.date オブジェクトを比較すると、比較前に datetime.date が datetime に強制されていました。これは、datetime と datetime.date を等しいとみなさない Python、NumPy、および DatetimeIndex とは矛盾していました。
0.23.0 では、DatetimeIndex と Series の操作を統合し、その過程で datetime の Series と datetime.date の比較を警告なしに変更しました。
一時的に 0.22.0 の動作に戻したため、datetime と日付は再び等しいと比較される可能性がありますが、将来のリリースで 0.23.0 の動作を復元します。
まとめると、0.22.0、0.23.0、0.23.1 の動作は以下のとおりです。
# 0.22.0... Silently coerce the datetime.date
>>> import datetime
>>> pd.Series(pd.date_range('2017', periods=2)) == datetime.date(2017, 1, 1)
0 True
1 False
dtype: bool
# 0.23.0... Do not coerce the datetime.date
>>> pd.Series(pd.date_range('2017', periods=2)) == datetime.date(2017, 1, 1)
0 False
1 False
dtype: bool
# 0.23.1... Coerce the datetime.date with a warning
>>> pd.Series(pd.date_range('2017', periods=2)) == datetime.date(2017, 1, 1)
/bin/python:1: FutureWarning: Comparing Series of datetimes with 'datetime.date'. Currently, the
'datetime.date' is coerced to a datetime. In the future pandas will
not coerce, and the values not compare equal to the 'datetime.date'.
To retain the current behavior, convert the 'datetime.date' to a
datetime with 'pd.Timestamp'.
#!/bin/python3
0 True
1 False
dtype: bool
さらに、順序比較は将来 TypeError を発生させます。
その他の修正
to_sql()がマルチバリュー挿入を実行する機能を元に戻しました。これは特定の場合にリグレッションを引き起こしたためです (GH 21103)。将来、この機能は設定可能になります。タイムゾーン対応データの場合の
DatetimeIndex.dateおよびDatetimeIndex.time属性でのリグレッションを修正しました:DatetimeIndex.timeが tz-naive ではなく tz-aware の時刻を返していた (GH 21267) および入力日付が非 UTC タイムゾーンの場合にDatetimeIndex.dateが誤った日付を返していた (GH 21230) 問題を修正しました。None値が JSON のネストされたレベルにある場合にpandas.io.json.json_normalize()を呼び出すとリグレッションが発生し、値がNoneであるキーをドロップしないように修正しました (GH 21158, GH 21356)。to_csv()で、圧縮とエンコーディングが指定された場合にエンコーディングエラーを引き起こすバグ (GH 21241, GH 21118) を修正しました。-OO 最適化で pandas がインポートできないバグ (GH 21071) を修正しました。
Categorical.fillna()で、valueおよび個々のカテゴリがイテラブルであり、valueがイテラブルである場合に誤ってTypeErrorを発生させるバグ (GH 21097, GH 19788) を修正しました。dtype=strを渡したときにNoneのような NA 値を文字列に強制するコンストラクタでのリグレッション (GH 21083) を修正しました。pivot_table()で、ピボットのindexに欠損値を持つ順序付きCategoricalがアラインメントのずれた結果を与えるリグレッション (GH 21133) を修正しました。ブールインデックス/列でのマージにおけるリグレッション (GH 21119) を修正しました。
パフォーマンス改善#
バグ修正#
グループ化/リサンプル/ローリング
DataFrame.agg()で、重複した列名を持つDataFrameに複数の集計関数を適用するとスタックオーバーフローを引き起こすバグ (GH 21063) を修正しました。GroupBy.ffill()およびGroupBy.bfill()で、実装が非安定ソートを使用しているため、グループ内の埋め込みが常に意図どおりに適用されないバグ (GH 21207) を修正しました。GroupBy.rank()で、method='dense'およびpct=Trueを指定した場合に結果が 100% にスケーリングされないバグを修正しました。pandas.DataFrame.rolling()およびpandas.Series.rolling()が 0 のウィンドウサイズを誤って受け入れ、エラーを発生させなかったバグ (GH 21286) を修正しました。
データ型固有
Series.str.replace()で、Python 3.5.2 でメソッドがTypeErrorをスローするバグ (GH 21078) を修正しました。Timedeltaで、単位付きの float を渡すと float の精度が prematurely に丸められるバグ (GH 14156) を修正しました。pandas.testing.assert_index_equal()で、check_categorical=Falseパラメータを使用して 2 つのCategoricalIndexオブジェクトを比較した場合に、誤ってAssertionErrorが発生するバグ (GH 19776) を修正しました。
スパース
SparseArray.shapeで、以前はSparseArray.sp_valuesの形状のみを返していたバグ (GH 21126) を修正しました。
インデックス付け
Series.reset_index()で、無効なレベル名が指定されたときに適切なエラーが発生しなかったバグ (GH 20925) を修正しました。interval_range()で、start/periodsまたはend/periodsが float のstartまたはendと共に指定された場合のバグ (GH 21161) を修正しました。MultiIndex.set_names()で、nlevels == 1のMultiIndexでエラーが発生するバグ (GH 21149) を修正しました。IntervalIndexコンストラクタで、カテゴリデータからのIntervalIndexの作成が完全にサポートされていなかったバグ (GH 21243, GH 21253) を修正しました。MultiIndex.sort_index()で、level=1で正しくソートされることが保証されていなかったバグを修正しました。これにより、特定のDataFrame.stack()操作でデータのミスマッチも発生していました (GH 20994, GH 20945, GH 21052)。
プロット
pandas.DataFrame().groupby().boxplot() で生成されるサブプロットの x/y 軸の共有をオン/オフする新しいキーワード (sharex, sharey) を追加しました (GH 20968)。
I/O
compression='zip'を指定した IO メソッドで、非圧縮の zip アーカイブが生成されるバグ (GH 17778, GH 21144) を修正しました。DataFrame.to_stata()で、DataFrame をバッファやほとんどのファイルライクオブジェクトにエクスポートできないバグ (GH 21041) を修正しました。read_stata()およびStataReaderで、Python 3 で Stata 14 ファイル (dta バージョン 118) からの utf-8 文字列を正しくデコードできなかったバグ (GH 21244) を修正しました。IO JSON
read_json()で、orient='table'を使用して空の JSON スキーマをDataFrameに読み込むとエラーが発生するバグ (GH 21287) を修正しました。
再整形
concat()で、numpy スカラおよびタプル名を持つSeriesを連結するとエラーが発生するバグ (GH 21015) を修正しました。concat()の警告メッセージが、将来の動作に対して誤ったガイダンスを提供していたバグ (GH 21101) を修正しました。
その他
貢献者#
このリリースには合計 30 人がパッチを提供しました。「+」が付いている人は初めてパッチを提供しました。
Adam J. Stewart
Adam Kim +
Aly Sivji
Chalmer Lowe +
Damini Satya +
Dr. Irv
Gabe Fernando +
Giftlin Rajaiah
ジェフ・リーバック
Jeremy Schendel +
Joris Van den Bossche
Kalyan Gokhale +
ケビン・シェパード
Matthew Roeschke
Max Kanter +
Ming Li
Pyry Kovanen +
Stefano Cianciulli
Tom Augspurger
Uddeshya Singh +
Wenhuan
ウィリアム・エイド
クリス・B1
ジーエフヤング
h-vetinari
nprad +
ssikdar1 +
tmnhat2001
topper-123
zertrin +