バージョン 0.14.1 (2014年7月11日)#
これは0.14.0からのマイナーリリースで、少数のAPI変更、いくつかの新機能、機能強化、パフォーマンス改善に加え、多数のバグ修正が含まれています。すべてのユーザーにこのバージョンへのアップグレードを推奨します。
主な機能は以下の通りです。
dtypeに基づいて列を選択する新しいメソッド
select_dtypes()、および平均の標準誤差を計算するsem()。dateutilタイムゾーンのサポート(ドキュメントを参照)。
read_csv()テキストパーサーでの完全な行コメントの無視のサポート。オプションと設定に関する新しいドキュメントセクション。
多数のバグ修正。
APIの変更点#
Openpyxlは、pandasのインポート時の警告ではなく、openpyxlライターの構築時にValueErrorを発生させるようになりました(GH 7284)。
StringMethods.extractの場合、一致が見つからない場合、結果(NaN値のみを含む)は、floatの代わりにdtype=objectを持つようになりました(GH 7242)。Periodオブジェクトは、Periodではない別のオブジェクトと==を使用して比較してもTypeErrorを発生させなくなりました。代わりに、Periodを別のオブジェクトと==で比較する場合、その別のオブジェクトがPeriodでない場合はFalseが返されます。(GH 7376)以前は、
offsets.apply、rollforward、rollback操作での時刻のリセットの有無の動作は、オフセットによって異なっていました。すべてのオフセットでnormalizeキーワードがサポートされ(下記参照)、デフォルト値がFalse(時刻を保持)になったことで、特定のオフセット(BusinessMonthBegin、MonthEnd、BusinessMonthEnd、CustomBusinessMonthEnd、BusinessYearBegin、LastWeekOfMonth、FY5253Quarter、LastWeekOfMonth、Easter)の動作が変更されました。In [6]: from pandas.tseries import offsets In [7]: d = pd.Timestamp('2014-01-01 09:00') # old behaviour < 0.14.1 In [8]: d + offsets.MonthEnd() Out[8]: pd.Timestamp('2014-01-31 00:00:00')
0.14.1以降、すべてのオフセットはデフォルトで時刻を保持します。以前の動作は
normalize=Trueで取得できます。# new behaviour In [1]: d + offsets.MonthEnd() Out[1]: Timestamp('2014-01-31 09:00:00') In [2]: d + offsets.MonthEnd(normalize=True) Out[2]: Timestamp('2014-01-31 00:00:00')
なお、他のオフセットについては、デフォルトの動作は変更されていません。
テキスト解析で
#N/A N/AをデフォルトのNA値として追加(0.12からのリグレッション)(GH 5521).whereと非np.nan値でのインプレース設定は、df[mask] = Noneのような設定項目式と矛盾するため、TypeErrorを発生させるようになりました(GH 7656)。
機能強化#
value_countsとnuniqueにdropna引数を追加(GH 5569)。dtypeに基づいて列を選択できるように、
select_dtypes()メソッドを追加(GH 7316)。ドキュメントを参照。すべての
offsetsは、offsets.apply、rollforward、rollbackが時刻(時、分など)をリセットするかどうかを指定するnormalizeキーワードをサポートしています(デフォルトはFalseで、時刻を保持します)(GH 7156)。import pandas.tseries.offsets as offsets day = offsets.Day() day.apply(pd.Timestamp("2014-01-01 09:00")) day = offsets.Day(normalize=True) day.apply(pd.Timestamp("2014-01-01 09:00"))
PeriodIndexはDatetimeIndexと同じ形式で表現されます(GH 7601)。StringMethodsは空のSeriesでも機能するようになりました(GH 7242)。ファイルパーサーの
read_csvとread_tableは、commentパラメータで指定された行コメントを無視するようになりました。commentはCリーダーの場合、単一の文字のみを受け入れます。特に、ファイルデータが始まる前のコメントが許可されます(GH 2685)。read_csv()で
chunksizeとnrowsを同時に使用した場合にNotImplementedErrorを追加(GH 6774)。公開S3バケットの基本的な読み込みに関するテストが追加されました(GH 7281)。
read_htmlは、基礎となるパーサーライブラリに渡されるencoding引数を備えるようになりました。これを使用して、非ASCIIエンコードのウェブページを読み取ることができます(GH 7323)。read_excelは、read_csvと同じ方法でURLからの読み込みをサポートするようになりました。(GH 6809)dateutilタイムゾーンのサポート。pytzタイムゾーンと同じ方法でpandas全体で使用できるようになりました。(GH 4688)
In [3]: rng = pd.date_range( ...: "3/6/2012 00:00", periods=10, freq="D", tz="dateutil/Europe/London" ...: ) ...: In [4]: rng.tz Out[4]: tzfile('/usr/share/zoneinfo/Europe/London')
ドキュメントを参照。
Series、DataFrame、Panel、およびGroupbyのsem(平均の標準誤差)操作を実装(GH 6897)Seriesgroupbyの許可リストにnlargestとnsmallestを追加。これにより、SeriesGroupByオブジェクトでこれらのメソッドを使用できるようになりました(GH 7053)。すべてのオフセット
apply、rollforward、rollbackはnp.datetime64を処理できるようになりました。以前はApplyTypeErrorが発生していました(GH 7452)。PeriodおよびPeriodIndexは値にNaTを含むことができるようになりました(GH 7485)。Series、DataFrame、Panelオブジェクトを、*item*軸(それぞれindex、columns、items)に沿って一意でないラベルを持つ場合でもピクルできるようになりました(GH 7370)。混合nullオブジェクトを持つdatetime/timedeltaの推論を改善。すべてのnull要素を持つオブジェクトIndexの解釈における0.13.1からのリグレッションを修正(GH 7431)。
パフォーマンス#
数値演算におけるdtype推論を改善し、
int64、timedelta64、datetime64のdtypesでパフォーマンスが向上しました(GH 7223)。Series.transformを改善し、大幅なパフォーマンス向上を実現(GH 6496)。
DataFrame.transformとufuncsおよび組み込みのグルーパー関数を改善し、大幅なパフォーマンス向上を実現(GH 7383)。
datetime64 dtypesのgroupby集計におけるリグレッションを修正(GH 7555)。
大規模なイテラブルに対する
MultiIndex.from_productを改善(GH 7627)。
実験的#
pandas.io.data.Optionsに新しいメソッドget_all_dataが追加され、一貫してMultiIndexedDataFrameを返すようになりました(GH 5602)。io.gbq.read_gbqとio.gbq.to_gbqは、Googlebq.pyコマンドラインクライアントへの依存関係を削除するためにリファクタリングされました。このサブモジュールは現在、httplib2とGoogleapiclientおよびoauth2clientAPIクライアントライブラリを使用しており、これらはbq.pyよりも安定しており、信頼性が高いはずです。ドキュメントを参照してください。(GH 6937)。
バグ修正#
対称的な形状のフレームとDataFrameの別のオブジェクトを渡した場合の
DataFrame.whereのバグを修正(GH 7506)。MultiIndex軸を持つPanelのインデックス付けのバグを修正(GH 7516)。
重複したインデックスと非正確な終点を持つdatetimelikeスライスインデックス付けのリグレッションを修正(GH 7523)。
リストのリストと単一型と混合型でのsetitemのバグを修正(GH 7551)。
非アライメントなSeriesでの時刻操作のバグを修正(GH 7500)。
不完全なSeriesを割り当てる際のtimedelta推論のバグを修正(GH 7592)。
Seriesと整数のような列名を持つgroupby
.nthのバグを修正(GH 7559)。ブールアクセサを持つ
Series.getのバグを修正(GH 7407)。value_countsでNaTが欠損値(NaN)として認識されなかったバグを修正(GH 7423)。無効な単位を受け入れたり、「m/h」を誤解釈したりした
to_timedeltaのバグを修正(GH 7611、GH 6423)。secondary_y=Trueの場合に、ラインプロットが正しいxlimを設定しないバグを修正(GH 7459)。グループ化された
histおよびscatterプロットが古いfigsizeデフォルトを使用するバグを修正(GH 7394)。DataFrame.plotによるサブプロットのプロットで、サブプロットの数が1つであってもhistが渡されたaxをクリアするバグを修正(GH 7391)。DataFrame.boxplotとbyキーワードによるサブプロットのプロットで、サブプロットの数が1を超える場合にValueErrorを発生させるバグを修正(GH 7391)。サブプロットが
ticklabelsとlabelsを異なるルールで表示するバグを修正(GH 5897)。MultiIndexを軸とする
Panel.applyのバグを修正(GH 7469)。DatetimeIndex.insertがnameとtzを保持しないバグを修正(GH 7299)。DatetimeIndex.asobjectがnameを保持しないバグを修正(GH 7299)。datetimelikeな範囲(文字列とTimestamp)を持つMultiIndexスライスのバグを修正(GH 7429)。
Index.minおよびmaxがnanとNaTを適切に処理しないバグを修正(GH 7261)。PeriodIndex.min/maxの結果がintになるバグを修正(GH 7609)。howを渡した場合にfill_methodが無視されるresampleのバグを修正(GH 2073)。TimeGrouperがkeyで指定された列を除外しないバグを修正(GH 7227)。bottomとleftキーワードが指定された場合に、DataFrameおよびSeriesの棒グラフおよび横棒グラフがTypeErrorを発生させるバグを修正(GH 7226)。DataFrame.histが非数値列を含む場合にTypeErrorを発生させるバグを修正(GH 7277)。Index.deleteがnameとfreq属性を保持しないバグを修正(GH 7302)。DataFrame.query()/evalにおいて、@記号を持つローカル文字列変数が削除しようとする一時変数として扱われていたバグを修正(GH 7300)。重複を許可していなかった
Float64Indexのバグを修正(GH 7149)。DataFrame.replace()でtruthyな値が置き換えられていたバグを修正(GH 7140)。StringMethods.extract()で、単一の一致グループSeriesがグループ名ではなくマッチャーの名前を使用していたバグを修正(GH 7313)。mode.use_inf_as_null == Trueの場合に、isnull()がinf/-infに遭遇してもTrueをテストしなかったバグを修正(GH 7315)。東半球のタイムゾーンでinferred_freqがNoneになるバグを修正(GH 7310)。
オフセットが負の場合に
Easterが間違った日付を返すバグを修正(GH 7195)。.div、整数dtypes、ゼロ除算でのブロードキャスティングのバグを修正(GH 7325)。np.datetime64オブジェクトが渡された場合にCustomBusinessDay.applyがNameErrorを発生させるバグを修正(GH 7196)。MultiIndex.append、concat、pivot_tableがタイムゾーンを保持しないバグを修正(GH 6606)。単一のMultiIndexレベル(ネストされていない)でのインデクサのリストを含む
.locのバグを修正(GH 7349)。異なる長さのタプルキーを持つ辞書をマッピングする際の
Series.mapのバグを修正(GH 7333)。すべての
StringMethodsが空のSeriesでも機能するバグを修正(GH 7242)。クエリに'select'が含まれない場合に、
read_sqlからread_sql_queryへのデリゲーションを修正(GH 7324)。Float64Indexを持つDataFrameへの文字列列名の割り当てで、np.isnanの呼び出し中にTypeErrorが発生するバグを修正(GH 7366)。NDFrame.replace()がPeriod値を持つオブジェクトを正しく置き換えなかったバグを修正(GH 7379)。.ixのgetitemが常にSeriesを返すべきバグを修正(GH 7150)。不完全なインデクサを持つMultiIndexスライスのバグを修正(GH 7399)。
スライスされたレベルにステップを持つMultiIndexスライスのバグを修正(GH 7400)。
DatetimeIndexの負のインデクサが正しくスライスされていなかったバグを修正(GH 7408)。convert_objectsでboolオブジェクトがnanに変換されていたバグを修正(GH 7416)。quantileがaxisキーワード引数を無視するバグを修正(GH 7306)。nanops._maybe_null_outが複素数で機能しないバグを修正(GH 7353)。1次元
nan配列でaxis==0の場合、いくつかのnanops関数でバグを修正(GH 7354)。axis==Noneの場合にnanops.nanmedianが機能しないバグを修正(GH 7352)。nanops._has_infsが多くのdtypesで機能しないバグを修正(GH 7357)。0オブザベーションのdtaファイルの読み込みに失敗する
StataReader.dataのバグを修正(GH 7369)。固定幅文字列を含むStata 13 (117)ファイルを読み込む際の
StataReaderのバグを修正(GH 7360)。StataWriterがエンコーディングを無視するバグを修正(GH 7286)。DatetimeIndex比較がNaTを適切に処理しないバグを修正(GH 7529)。tzinfoを持つ入力を一部のオフセットapply、rollforward、またはrollbackに渡すと、tzinfoがリセットされるかValueErrorが発生するバグを修正(GH 7465)。DatetimeIndex.to_period、PeriodIndex.asobject、PeriodIndex.to_timestampがnameを保持しないバグを修正(GH 7485)。DatetimeIndex.to_periodとPeriodIndex.to_timestampがNaTを誤って処理するバグを修正(GH 7228)。offsets.apply、rollforward、およびrollbackが通常のdatetimeを返す可能性があるバグを修正(GH 7502)。ターゲットに
NaTが含まれる場合にresampleがValueErrorを発生させるバグを修正(GH 7227)。Timestamp.tz_localizeがnanosecond情報をリセットするバグを修正(GH 7534)。DatetimeIndex.asobjectがNaTを含む場合にValueErrorを発生させるバグを修正(GH 7539)。Timestamp.__new__がナノ秒を適切に保持しないバグを修正(GH 7610)。Index.astype(float)がobjectdtypeのIndexを返すバグを修正(GH 7464)。DataFrame.reset_indexがtzを失うバグを修正(GH 3950)。DatetimeIndex.freqstrがfreqがNoneの場合にAttributeErrorを発生させるバグを修正(GH 7606)。TimeGrouperによって作成されたGroupBy.sizeがAttributeErrorを発生させるバグを修正(GH 7453)。単一列の棒グラフがずれるバグを修正(GH 7498)。
タイムゾーン対応時系列を含むエリアプロットが
ValueErrorを発生させるバグを修正(GH 7471)。非単調
Index.unionがnameを誤って保持する可能性があるバグを修正(GH 7458)。DatetimeIndex.intersectionがタイムゾーンを保持しないバグを修正(GH 4690)。rolling_varで、配列より大きいウィンドウがエラーを発生させるバグを修正(GH 7297)。最後にプロットされた時系列が
xlimを決定するバグを修正(GH 2960)。secondary_y軸が時系列のxlimで考慮されないバグを修正(GH 3490)。非スカラーインデクサでの
Float64Indexの割り当てのバグを修正(GH 7586)。regex=Falseおよびcase=Falseの場合に、pandas.core.strings.str_containsがケースインセンシティブに適切に一致しないバグを修正(GH 7505)。インデックスが一致しない2つの引数での
expanding_cov、expanding_corr、rolling_cov、およびrolling_corrのバグを修正(GH 7512)。to_sqlがブール列をテキスト列として扱うバグを修正(GH 7678)。グループ化された
histがrotキーワードとsharexキーワードを適切に処理しないバグを修正(GH 7234)。.locがobjectdtypeインデックスでフォールバック整数インデックス付けを実行するバグを修正(GH 7496)。Seriesオブジェクトが渡された場合のPeriodIndexコンストラクタのバグ(リグレッション)を修正(GH 7701)。
貢献者#
このリリースには合計46人がパッチを提供しました。「+」のマークがある人は初めてパッチを提供しました。
アンドリュー・ローゼンフェルド
アンディ・ヘイデン
ベンジャミン・アダムス +
ベンジャミン・M・グロス +
ブライアン・クイストアオフ +
ブライアン・ウィグナル +
DSM
ダニエル・ウェーバー
デビッド・ビュー +
David Stephens
ジェイコブ・シャアー
ヤン・シュルツ
ジョン・デビッド・リーバー
John W. O’Brien
Joris Van den Bossche
ジュリアン・ダンジュー +
K.-Michael Aye
ケビン・シェパード
Kyle Meyer
マット・ウィットマン
マシュー・ブレット +
マイケル・ミュラー +
モルタダ・メヒヤル
Phillip Cloud
ロブ・レヴィー +
シャエール、ジェイコブ・C +
ステファン・ホイヤー
Thomas Kluyver
トッド・ジェニングス
Tom Augspurger
TomAugspurger
bwignall
clham
dsm054 +
helger +
immerrr
jaimefrio
jreback
レクシュアル
ワンズアンドゼロズ
ロックg
sanguineturtle +
seth-p +
sinhrks
不明
yelite +