バージョン 0.21.1 (2017年12月12日)#
これは 0.21.x シリーズにおけるマイナーなバグ修正リリースであり、いくつかの小さなリグレッション修正、バグ修正、およびパフォーマンス改善が含まれています。すべてのユーザーにこのバージョンへのアップグレードを推奨します。
主な機能は以下の通りです。
matplotlib の datetime プロット機能を一時的に復元します。これにより、matplotlib で datetime をプロットするために暗黙的に pandas に依存していたユーザーの問題が解決されるはずです。こちらを参照してください。
0.21.0 で導入された Parquet IO 関数の改善。こちらを参照してください。
v0.21.1 の新機能
Matplotlib datetime コンバーターの登録を復元#
pandas は、datetime または Period 値を持つプロットの軸ラベルを適切にフォーマットするために、いくつかの matplotlib コンバーターを実装しています。pandas 0.21.0 より前は、これらは import pandas の副次作用として matplotlib に暗黙的に登録されていました。
pandas 0.21.0 では、ユーザーにコンバーターを明示的に登録することを要求していました。これは、通常の matplotlib.pyplot プロットメソッドでこれらのコンバーターが存在することに依存していた一部のユーザーに問題を引き起こしたため、その変更を一時的に元に戻します。pandas 0.21.1 では、0.21.0 以前と同様に、インポート時にコンバーターを再び登録します。
コンバーターを制御する新しいオプション pd.options.plotting.matplotlib.register_converters を追加しました。デフォルトでは、これらは登録されています。これを False に切り替えると、pandas のフォーマッターが削除され、登録時に上書きしたコンバーターがすべて復元されます (GH 18301)。
matplotlib 開発者と協力して、これをより簡単にできるようにしています。ユーザーの利便性 (コンバーターの自動登録) とインポートパフォーマンスおよびベストプラクティス (pandas のインポートが、すでに設定したカスタムコンバーターを上書きする副次作用を持つべきではない) のバランスを取ろうとしています。将来的には、datetime フォーマット機能のほとんどを matplotlib に持たせ、pandas 固有のコンバーターのみを pandas に持たせることを望んでいます。そして、ユーザーが望むときに明示的にコンバーターを登録するよう、自動登録を段階的に廃止する予定です。
新機能#
Parquet IO 機能の改善#
DataFrame.to_parquet()は、基盤となるエンジンがサポートしている場合、非デフォルトのインデックスを書き込むようになりました。read_parquet()で読み戻すときにインデックスは保持されます (GH 18581)。read_parquet()は、parquet ファイルから読み込む列を指定できるようになりました (GH 18154)read_parquet()は、それぞれのエンジンに渡される kwargs を指定できるようになりました (GH 18216)
その他の機能強化#
Timestamp.timestamp()が Python 2.7 で利用可能になりました (GH 17329)。GrouperとTimeGrouperは、より分かりやすい repr 出力を持つようになりました (GH 18203)。
非推奨#
pandas.tseries.registerがpandas.plotting.register_matplotlib_converters()にリネームされました (GH 18301)。
パフォーマンス改善#
大規模な Series/DataFrame のプロットパフォーマンスが改善されました (GH 18236)。
バグ修正#
変換#
TimedeltaIndexの減算におけるバグで、NaTが存在する場合に誤ってオーバーフローする可能性がありました (GH 17791)DatetimeIndexから datetimelike を減算する際にオーバーフローに失敗する可能性があったバグ (GH 18020)非デフォルトの
closedを持つIntervalIndexをコピーする際のIntervalIndex.copy()のバグ (GH 18339)DataFrame.to_dict()のバグで、タイムゾーン対応の datetime 列がorient='records'とともに使用されたときに、必要な配列に変換されず、TypeErrorが発生していました (GH 18372)DateTimeIndexとdate_range()のバグで、タイムゾーン対応のstartとendのタイムゾーンが一致しない場合に、end.tzinfoが None であればエラーが発生しませんでした (GH 18431)Python 2 で長整数が渡されたときに例外を発生させていた
Series.fillna()のバグ (GH 18159)。
インデックス付け#
datetime.datetimeとdatetime64[ns]dtype の Series のブール比較におけるバグ (GH 17965)100万件を超えるレコードを持つ
MultiIndexが、存在しない属性にアクセスしようとしたときにAttributeErrorを発生させていなかったバグ (GH 18165)非デフォルトの
closedを持つ間隔のリストが渡された場合のIntervalIndexコンストラクターのバグ (GH 18334)無効なマスクが渡された場合の
Index.putmaskのバグ (GH 18368)timedelta64[ns]dtype のSeriesのマスク付き代入におけるバグで、誤って float に強制型変換されていました (GH 18493)
IO#
StataReaderで、表示形式を持つ日付/時刻列が変換されないバグが修正されました (GH 17990)。以前は、表示形式を持つ列は通常、序数として扱われ、datetime オブジェクトに変換されませんでした。圧縮された UTF-16 エンコードファイルを読み込む際の
read_csv()のバグ (GH 18071)na_filter=Falseを指定したときにインデックス列の null 値を処理するread_csv()のバグ (GH 5239)カーディナリティの高い数値カテゴリフィールドを読み込む際の
read_csv()のバグ (GH 18186)テーブルに
MultiIndex列があり、headerに文字列のリストが渡された場合のDataFrame.to_csv()のバグ (GH 5539)read_sqlで指定された形式で整数 datetime 類似列を解析する際のバグ (GH 17855)。numpy.bool_データ型のデータをシリアル化する際のDataFrame.to_msgpack()のバグ (GH 18390)S3 から行区切りの JSON を読み込む際にデコードしない
read_json()のバグ (GH 17200)metaの変更を避けるためのpandas.io.json.json_normalize()のバグ (GH 18610)to_latex()のバグで、上位レベルのインデックスが前の行と異なっていても、繰り返される MultiIndex 値が印刷されませんでした (GH 14484)HDFStoreで NaN のみを含むカテゴリ列を読み込む際のバグ (GH 18413)longtable=Trueを使用したDataFrame.to_latex()のバグで、latex multicolumn が常に3列にまたがっていました (GH 17959)
プロット#
DatetimeIndexを使用したDataFrame.plot()とSeries.plot()のバグで、Python 3 で生成された図が pickleable ではありませんでした (GH 18439)
GroupBy/resample/rolling#
再整形#
数値#
すべての値が等しい場合の
pd.Series.rolling.skew()とrolling.kurt()の浮動小数点問題に関するバグ (GH 18044)
カテゴリカル#
空の
DataFrameで 'category' にキャストするとセグメンテーションフォールトが発生するDataFrame.astype()のバグ (GH 18004)項目が異なる
CategoricalDtypeを持つ場合のテストモジュールのエラーメッセージが改善されました (GH 18069)CategoricalIndexがpd.api.types.CategoricalDtypeを dtype として正しく受け取れるようになりました (GH 18116)すべてのカテゴリが
NaNであった場合に読み取り専用のcodes配列を返していたCategorical.unique()のバグ (GH 18051)CategoricalIndexを使用したDataFrame.groupby(axis=1)のバグ (GH 18432)
文字列#
Series.str.split()は、Noneの代わりにNaN値をすべての展開された列に伝播するようになりました (GH 18450)
貢献者#
このリリースには合計46人がパッチを寄稿しました。名前に「+」が付いている人は初めてパッチを寄稿しました。
Aaron Critchley +
Alex Rychyk
Alexander Buchkovsky +
Alexander Michael Schade +
Chris Mazzullo
Cornelius Riemenschneider +
Dave Hirschfeld +
David Fischer +
David Stansby +
Dror Atariah +
Eric Kisslinger +
Hans +
Ingolf Becker +
Jan Werkmann +
ジェフ・リーバック
Joris Van den Bossche
Jörg Döpfert +
Kevin Kuhl +
Krzysztof Chomski +
Leif Walsh
Licht Takeuchi
Manraj Singh +
Matt Braymer-Hayes +
Michael Waskom +
Mie~~~ +
Peter Hoffmann +
Robert Meyer +
Sam Cohan +
Sietse Brouwer +
Sven +
Tim Swast
Tom Augspurger
ウェス・ターナー
William Ayd +
Yee Mey +
bolkedebruin +
cgohlke
derestle-htwg +
fjdiod +
gabrielclow +
ジーエフヤング
ghasemnaddaf +
jbrockmendel
jschendel
miker985 +
topper-123