バージョン 0.14.1 (2014年7月11日)#

これは0.14.0からのマイナーリリースで、少数のAPI変更、いくつかの新機能、機能強化、パフォーマンス改善に加え、多数のバグ修正が含まれています。すべてのユーザーにこのバージョンへのアップグレードを推奨します。

APIの変更点#

  • Openpyxlは、pandasのインポート時の警告ではなく、openpyxlライターの構築時にValueErrorを発生させるようになりました(GH 7284)。

  • StringMethods.extractの場合、一致が見つからない場合、結果(NaN値のみを含む)は、floatの代わりにdtype=objectを持つようになりました(GH 7242)。

  • Periodオブジェクトは、Periodではない別のオブジェクトと==を使用して比較してもTypeErrorを発生させなくなりました。代わりに、Periodを別のオブジェクトと==で比較する場合、その別のオブジェクトがPeriodでない場合はFalseが返されます。(GH 7376

  • 以前は、offsets.applyrollforwardrollback操作での時刻のリセットの有無の動作は、オフセットによって異なっていました。すべてのオフセットで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_countsnuniquedropna引数を追加(GH 5569)。

  • dtypeに基づいて列を選択できるように、select_dtypes()メソッドを追加(GH 7316)。ドキュメントを参照。

  • すべてのoffsetsは、offsets.applyrollforwardrollbackが時刻(時、分など)をリセットするかどうかを指定する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"))
    
  • PeriodIndexDatetimeIndexと同じ形式で表現されます(GH 7601)。

  • StringMethodsは空のSeriesでも機能するようになりました(GH 7242)。

  • ファイルパーサーのread_csvread_tableは、commentパラメータで指定された行コメントを無視するようになりました。commentはCリーダーの場合、単一の文字のみを受け入れます。特に、ファイルデータが始まる前のコメントが許可されます(GH 2685)。

  • read_csv()でchunksizenrowsを同時に使用した場合に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')
    

    ドキュメントを参照。

  • SeriesDataFramePanel、およびGroupbysem(平均の標準誤差)操作を実装(GH 6897

  • Series groupbyの許可リストにnlargestnsmallestを追加。これにより、SeriesGroupByオブジェクトでこれらのメソッドを使用できるようになりました(GH 7053)。

  • すべてのオフセットapplyrollforwardrollbacknp.datetime64を処理できるようになりました。以前はApplyTypeErrorが発生していました(GH 7452)。

  • PeriodおよびPeriodIndexは値にNaTを含むことができるようになりました(GH 7485)。

  • SeriesDataFramePanelオブジェクトを、*item*軸(それぞれindexcolumnsitems)に沿って一意でないラベルを持つ場合でもピクルできるようになりました(GH 7370)。

  • 混合nullオブジェクトを持つdatetime/timedeltaの推論を改善。すべてのnull要素を持つオブジェクトIndexの解釈における0.13.1からのリグレッションを修正(GH 7431)。

パフォーマンス#

  • 数値演算におけるdtype推論を改善し、int64timedelta64datetime64の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が追加され、一貫してMultiIndexed DataFrameを返すようになりました(GH 5602)。

  • io.gbq.read_gbqio.gbq.to_gbqは、Google bq.pyコマンドラインクライアントへの依存関係を削除するためにリファクタリングされました。このサブモジュールは現在、httplib2とGoogle apiclientおよびoauth2client APIクライアントライブラリを使用しており、これらは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_countsNaTが欠損値(NaN)として認識されなかったバグを修正(GH 7423)。

  • 無効な単位を受け入れたり、「m/h」を誤解釈したりしたto_timedeltaのバグを修正(GH 7611GH 6423)。

  • secondary_y=Trueの場合に、ラインプロットが正しいxlimを設定しないバグを修正(GH 7459)。

  • グループ化されたhistおよびscatterプロットが古いfigsizeデフォルトを使用するバグを修正(GH 7394)。

  • DataFrame.plotによるサブプロットのプロットで、サブプロットの数が1つであってもhistが渡されたaxをクリアするバグを修正(GH 7391)。

  • DataFrame.boxplotbyキーワードによるサブプロットのプロットで、サブプロットの数が1を超える場合にValueErrorを発生させるバグを修正(GH 7391)。

  • サブプロットがticklabelslabelsを異なるルールで表示するバグを修正(GH 5897)。

  • MultiIndexを軸とするPanel.applyのバグを修正(GH 7469)。

  • DatetimeIndex.insertnametzを保持しないバグを修正(GH 7299)。

  • DatetimeIndex.asobjectnameを保持しないバグを修正(GH 7299)。

  • datetimelikeな範囲(文字列とTimestamp)を持つMultiIndexスライスのバグを修正(GH 7429)。

  • Index.minおよびmaxnanNaTを適切に処理しないバグを修正(GH 7261)。

  • PeriodIndex.min/maxの結果がintになるバグを修正(GH 7609)。

  • howを渡した場合にfill_methodが無視されるresampleのバグを修正(GH 2073)。

  • TimeGrouperkeyで指定された列を除外しないバグを修正(GH 7227)。

  • bottomleftキーワードが指定された場合に、DataFrameおよびSeriesの棒グラフおよび横棒グラフがTypeErrorを発生させるバグを修正(GH 7226)。

  • DataFrame.histが非数値列を含む場合にTypeErrorを発生させるバグを修正(GH 7277)。

  • Index.deletenamefreq属性を保持しないバグを修正(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.applyNameErrorを発生させるバグを修正(GH 7196)。

  • MultiIndex.appendconcatpivot_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)。

  • MultiIndexNaTが正しくreprされていなかったバグを修正(GH 7406GH 7409)。

  • 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を持つ入力を一部のオフセットapplyrollforward、またはrollbackに渡すと、tzinfoがリセットされるかValueErrorが発生するバグを修正(GH 7465)。

  • DatetimeIndex.to_periodPeriodIndex.asobjectPeriodIndex.to_timestampnameを保持しないバグを修正(GH 7485)。

  • DatetimeIndex.to_periodPeriodIndex.to_timestampNaTを誤って処理するバグを修正(GH 7228)。

  • offsets.applyrollforward、およびrollbackが通常のdatetimeを返す可能性があるバグを修正(GH 7502)。

  • ターゲットにNaTが含まれる場合にresampleValueErrorを発生させるバグを修正(GH 7227)。

  • Timestamp.tz_localizenanosecond情報をリセットするバグを修正(GH 7534)。

  • DatetimeIndex.asobjectNaTを含む場合にValueErrorを発生させるバグを修正(GH 7539)。

  • Timestamp.__new__がナノ秒を適切に保持しないバグを修正(GH 7610)。

  • Index.astype(float)object dtypeのIndexを返すバグを修正(GH 7464)。

  • DataFrame.reset_indextzを失うバグを修正(GH 3950)。

  • DatetimeIndex.freqstrfreqNoneの場合にAttributeErrorを発生させるバグを修正(GH 7606)。

  • TimeGrouperによって作成されたGroupBy.sizeAttributeErrorを発生させるバグを修正(GH 7453)。

  • 単一列の棒グラフがずれるバグを修正(GH 7498)。

  • タイムゾーン対応時系列を含むエリアプロットがValueErrorを発生させるバグを修正(GH 7471)。

  • 非単調Index.unionnameを誤って保持する可能性があるバグを修正(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_covexpanding_corrrolling_cov、およびrolling_corrのバグを修正(GH 7512)。

  • to_sqlがブール列をテキスト列として扱うバグを修正(GH 7678)。

  • グループ化されたhistrotキーワードとsharexキーワードを適切に処理しないバグを修正(GH 7234)。

  • .locobject dtypeインデックスでフォールバック整数インデックス付けを実行するバグを修正(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 +