1.3.0の新機能 (2021年7月2日)#
これらはpandas 1.3.0での変更点です。他のバージョンのpandasを含む完全な変更履歴については、リリースノートを参照してください。
警告
新しいExcel 2007+ (.xlsx) ファイルを読み込む際、read_excel() のデフォルト引数 engine=None は、オプション io.excel.xlsx.reader が "auto" に設定されている場合、すべての場合で openpyxl エンジンを使用するようになりました。以前は、一部のケースでは代わりに xlrd エンジンを使用していました。この変更の背景については、1.2.0の新機能を参照してください。
機能強化#
CSVまたはJSONファイルを読み込む際のカスタムHTTP(s)ヘッダー#
fsspecによって処理されないリモートURL(例:HTTPおよびHTTPS)から読み込む際、storage_options に渡される辞書は、リクエストに含まれるヘッダーを作成するために使用されます。これは、User-Agentヘッダーを制御したり、他のカスタムヘッダーを送信したりするために使用できます (GH 36688)。例:
In [1]: headers = {"User-Agent": "pandas"}
In [2]: df = pd.read_csv(
...: "https://download.bls.gov/pub/time.series/cu/cu.item",
...: sep="\t",
...: storage_options=headers
...: )
XMLドキュメントの読み書き#
read_xml() と DataFrame.to_xml() を使用して、XML ドキュメントの浅いバージョンの読み込みとレンダリングのためのI/Oサポートを追加しました。lxml をパーサーとして使用することで、XPath 1.0とXSLT 1.0の両方が利用可能です。 (GH 27554)
In [1]: xml = """<?xml version='1.0' encoding='utf-8'?>
...: <data>
...: <row>
...: <shape>square</shape>
...: <degrees>360</degrees>
...: <sides>4.0</sides>
...: </row>
...: <row>
...: <shape>circle</shape>
...: <degrees>360</degrees>
...: <sides/>
...: </row>
...: <row>
...: <shape>triangle</shape>
...: <degrees>180</degrees>
...: <sides>3.0</sides>
...: </row>
...: </data>"""
In [2]: df = pd.read_xml(xml)
In [3]: df
Out[3]:
shape degrees sides
0 square 360 4.0
1 circle 360 NaN
2 triangle 180 3.0
In [4]: df.to_xml()
Out[4]:
<?xml version='1.0' encoding='utf-8'?>
<data>
<row>
<index>0</index>
<shape>square</shape>
<degrees>360</degrees>
<sides>4.0</sides>
</row>
<row>
<index>1</index>
<shape>circle</shape>
<degrees>360</degrees>
<sides/>
</row>
<row>
<index>2</index>
<shape>triangle</shape>
<degrees>180</degrees>
<sides>3.0</sides>
</row>
</data>
詳細については、I/OツールのユーザーガイドのXMLの書き込みを参照してください。
Stylerの機能強化#
Styler に焦点を当てた開発を行いました。改訂および改善されたStylerドキュメントも参照してください (GH 39720, GH 39317, GH 40493)。
メソッド
Styler.set_table_styles()は、[('color', 'red')]の代わりに'color:red;'のような、より自然なCSS言語を引数として受け入れるようになりました (GH 39563)メソッド
Styler.highlight_null(),Styler.highlight_min(), およびStyler.highlight_max()は、デフォルトの背景色付けの代わりにカスタムCSSハイライトを許可するようになりました (GH 40242)
Styler.apply()は、axis=Noneの場合にndarrayを返す関数を受け入れるようになり、axis=0およびaxis=1の動作と一貫性を持つようになりました (GH 39359)
Styler.apply()またはStyler.applymap()を介して不正な形式のCSSが与えられた場合、レンダリング時にエラーが発行されるようになりました (GH 39660)
Styler.format()は、オプションのHTMLおよびLaTeXエスケープのためにキーワード引数escapeを受け入れるようになりました (GH 40388, GH 41619)
Styler.background_gradient()は、シェーディングのために特定のグラデーションマップを提供する引数gmapを獲得しました (GH 22727)
Styler.clear()は、Styler.hidden_indexとStyler.hidden_columnsもクリアするようになりました (GH 40484)メソッド
Styler.highlight_between()を追加しました (GH 39821)メソッド
Styler.highlight_quantile()を追加しました (GH 40926)メソッド
Styler.text_gradient()を追加しました (GH 41098)ホバーツールチップを許可するメソッド
Styler.set_tooltips()を追加しました。これはインタラクティブな表示を強化するために使用できます (GH 21266, GH 40284)メソッド
Styler.format()に、浮動小数点数の表示を制御するためのパラメータprecisionを追加しました (GH 40134)
StylerでレンダリングされたHTML出力は、w3 HTMLスタイルガイドに従うようになりました (GH 39626)
Stylerクラスの多くの機能が、非ユニークなインデックスまたはカラムを持つDataFrameで部分的または完全に利用可能になりました (GH 41143)インデックスまたはカラムの個別スパース化を通じて表示の制御が強化されました。これは新しいStylerオプションを使用し、
option_context()経由でも利用できます (GH 41142)大規模なDataFrameをスタイリングする際のブラウザの過負荷を避けるため、オプション
styler.render.max_elementsを追加しました (GH 40712)メソッド
Styler.to_latex()を追加しました (GH 21673, GH 42320)。これにより、CSSからLaTeXへの限定的な変換も可能になります (GH 40731)メソッド
Styler.to_html()を追加しました (GH 13379)スクロールするHTMLフレームでインデックスとカラムヘッダーを永続的に表示させるため、メソッド
Styler.set_sticky()を追加しました (GH 29072)
DataFrameコンストラクタがdictで copy=False を尊重する#
DataFrame に copy=False を指定して辞書を渡した場合、コピーは作成されなくなりました (GH 32960)。
In [1]: arr = np.array([1, 2, 3])
In [2]: df = pd.DataFrame({"A": arr, "B": arr.copy()}, copy=False)
In [3]: df
Out[3]:
A B
0 1 1
1 2 2
2 3 3
df["A"] は arr のビューのままです。
In [4]: arr[0] = 0
In [5]: assert df.iloc[0, 0] == 0
copy を渡さない場合のデフォルトの動作は変更されません。つまり、コピーが作成されます。
PyArrowをバックエンドとする文字列データ型#
文字列データ専用の拡張型である StringDtype を強化しました。 (GH 39908)
現在、StringDtype に storage キーワードオプションを指定することが可能になりました。pandasオプションを使用するか、dtype='string[pyarrow]' を使用してdtypeを指定することで、StringArrayをPythonオブジェクトのNumPy配列ではなくPyArrow配列でバックアップできます。
PyArrowをバックエンドとするStringArrayには、pyarrow 1.0.0以上がインストールされている必要があります。
警告
string[pyarrow] は現在実験的とみなされています。実装およびAPIの一部は警告なしに変更される可能性があります。
In [6]: pd.Series(['abc', None, 'def'], dtype=pd.StringDtype(storage="pyarrow"))
Out[6]:
0 abc
1 <NA>
2 def
dtype: string
エイリアス "string[pyarrow]" も使用できます。
In [7]: s = pd.Series(['abc', None, 'def'], dtype="string[pyarrow]")
In [8]: s
Out[8]:
0 abc
1 <NA>
2 def
dtype: string
pandasオプションを使用してPyArrowをバックエンドとする文字列配列を作成することもできます。
In [9]: with pd.option_context("string_storage", "pyarrow"):
...: s = pd.Series(['abc', None, 'def'], dtype="string")
...:
In [10]: s
Out[10]:
0 abc
1 <NA>
2 def
dtype: string
通常の文字列アクセサメソッドが機能します。適切な場合、SeriesまたはDataFrameのカラムの戻り値の型も文字列dtypeになります。
In [11]: s.str.upper()
Out[11]:
0 ABC
1 <NA>
2 DEF
dtype: string
In [12]: s.str.split('b', expand=True).dtypes
Out[12]:
0 string[pyarrow]
1 string[pyarrow]
dtype: object
整数を返す文字列アクセサメソッドは Int64Dtype の値を返します。
In [13]: s.str.count("a")
Out[13]:
0 1
1 <NA>
2 0
dtype: Int64
中央揃えされた日付時刻のようなローリングウィンドウ#
日付時刻のようなインデックスを持つDataFrameおよびSeriesオブジェクトでローリング計算を実行する際、中央揃えされた日付時刻のようなウィンドウを使用できるようになりました (GH 38780)。例:
In [14]: df = pd.DataFrame(
....: {"A": [0, 1, 2, 3, 4]}, index=pd.date_range("2020", periods=5, freq="1D")
....: )
....:
In [15]: df
Out[15]:
A
2020-01-01 0
2020-01-02 1
2020-01-03 2
2020-01-04 3
2020-01-05 4
In [16]: df.rolling("2D", center=True).mean()
Out[16]:
A
2020-01-01 0.5
2020-01-02 1.5
2020-01-03 2.5
2020-01-04 3.5
2020-01-05 4.0
その他の機能強化#
DataFrame.rolling(),Series.rolling(),DataFrame.expanding(), およびSeries.expanding()は、DataFrame全体でウィンドウ操作を実行する'table'オプションを持つmethod引数をサポートするようになりました。パフォーマンスと機能上の利点については ウィンドウの概要 を参照してください (GH 15095, GH 38995)ExponentialMovingWindowは、オンライン方式でmean計算を実行できるonlineメソッドをサポートするようになりました。ウィンドウの概要を参照してください (GH 41673)MultiIndex.dtypes()を追加しました (GH 37062)DataFrame.resample()のorigin引数にendおよびend_dayオプションを追加しました (GH 37804)read_csv()およびengine="c"の場合、usecolsとnamesが一致しない場合の改善されたエラーメッセージ (GH 29042)ウィンドウメソッドで無効な
win_type引数を渡した場合のエラーメッセージの一貫性が向上しました (GH 15969)read_sql_query()は、ユーザー入力に基づいてSQLデータベースからのカラムデータをキャストするためのdtype引数を受け入れるようになりました (GH 10285)usecolsが指定されていない場合、ヘッダーまたは指定された名前の長さがデータの長さと一致しない場合に、read_csv()がParserWarningを発生させるようになりました (GH 21768)DataFrame.to_sql()を使用する際のpandasからSQLAlchemyへの整数型マッピングが改善されました (GH 35076)to_numeric()は、ヌル許容のExtensionDtypeオブジェクトのダウンキャストをサポートするようになりました (GH 33013)MultiIndex.set_namesおよびMultiIndex.renameで辞書のような名前をサポートしました (GH 20421)read_excel()は、.xlsbファイルと古い.xlsファイルを自動検出できるようになりました (GH 35416, GH 41225)ExcelWriterは、既存のシートに書き込む際のアペンドモードの動作を制御するためにif_sheet_existsパラメータを受け入れるようになりました (GH 40230)Rolling.sum(),Expanding.sum(),Rolling.mean(),Expanding.mean(),ExponentialMovingWindow.mean(),Rolling.median(),Expanding.median(),Rolling.max(),Expanding.max(),Rolling.min(), およびExpanding.min()は、engineキーワードを使用して Numba 実行をサポートするようになりました (GH 38895, GH 41267)DataFrame.apply()は、Series.apply()の場合と同様に、NumPy単項演算子を文字列として受け入れるようになりました (例:df.apply("sqrt")) (GH 39116)DataFrame.apply()は、Series.apply()の場合と同様に、呼び出し可能ではないDataFrameプロパティを文字列として受け入れるようになりました (例:df.apply("size")) (GH 39116)DataFrame.applymap()は、ユーザー提供のfuncに渡すためのkwargsを受け入れるようになりました (GH 39987)DataFrameインデクサをilocに渡すことは、Series.__getitem__()およびDataFrame.__getitem__()では許可されなくなりました (GH 39004)Series.apply()は、DataFrame.apply()の場合と同様に、リストや辞書ではないリストライクまたは辞書ライクな引数を受け入れるようになりました (例:ser.apply(np.array(["sum", "mean"]))) (GH 39140)DataFrame.plot.scatter()は、引数cにカテゴリカルカラムを受け入れるようになりました (GH 12380, GH 31357)Series.loc()は、SeriesがMultiIndexを持ち、インデクサの次元が多すぎる場合に、役立つエラーメッセージを発生させるようになりました (GH 35349)read_stata()は、圧縮ファイルからのデータ読み込みをサポートするようになりました (GH 26599)Timedeltaに、負符号を持つISO 8601ライクなタイムスタンプのパースをサポートしました (GH 37172)FloatingArrayでの単項演算子のサポートを追加しました (GH 38749)RangeIndexは、rangeオブジェクトを直接渡すことで構築できるようになりました (例:pd.RangeIndex(range(3))) (GH 12067)Series.round()およびDataFrame.round()は、ヌル許容の整数型および浮動小数点型で動作するようになりました (GH 38844)read_csv()およびread_json()は、エンコーディングエラーの処理方法を制御する引数encoding_errorsを公開するようになりました (GH 39450)DataFrameGroupBy.any(),SeriesGroupBy.any(),DataFrameGroupBy.all(), およびSeriesGroupBy.all()は、ヌル許容データ型でクリーネ論理を使用するようになりました (GH 37506)DataFrameGroupBy.any(),SeriesGroupBy.any(),DataFrameGroupBy.all(), およびSeriesGroupBy.all()は、ヌル許容データ型を持つカラムに対してBooleanDtypeを返すようになりました (GH 33449)skipna=Trueの場合でも、pd.NAを含むobjectデータを持つDataFrameGroupBy.any(),SeriesGroupBy.any(),DataFrameGroupBy.all(), およびSeriesGroupBy.all()が例外を発生させるようになりました (GH 37501)DataFrameGroupBy.rank()およびSeriesGroupBy.rank()は、オブジェクトdtypeデータをサポートするようになりました (GH 38278)data引数がNumPyスカラーからなるNumPyndarrayではないPythonイテラブルである場合のDataFrameまたはSeriesの構築は、NumPyスカラーの最大精度を持つdtypeを結果として生成するようになりました。これはdataがNumPyndarrayであった場合とすでに同じ動作でした (GH 40908)pivot_table()にキーワードsortを追加し、結果の非ソートを許可しました (GH 39143)DataFrame.value_counts()にキーワードdropnaを追加し、NA値を含む行のカウントを許可しました (GH 41325)Series.replace()は、可能な場合、結果をobjectdtypeではなくPeriodDtypeにキャストするようになりました (GH 41526)Rolling、Expanding、およびExponentialMovingWindowのcorrおよびcovメソッドで、otherがDataFrameまたはSeriesでない場合の改善されたエラーメッセージ (GH 41741)Series.between()は、inclusiveの引数としてleftまたはrightを受け入れるようになり、左または右の境界のみを含めることができるようになりました (GH 40245)DataFrame.explode()は複数のカラムの爆発をサポートするようになりました。そのcolumn引数は、同時に複数のカラムで爆発するための文字列またはタプルのリストも受け入れるようになりました (GH 39240)DataFrame.sample()は、DataFrame.drop_duplicates()やDataFrame.sort_values()と同様に、サンプリング後にインデックスをリセットするignore_index引数を受け入れるようになりました (GH 38581)
注目すべきバグ修正#
これらは、注目すべき動作変更をもたらす可能性のあるバグ修正です。
Categorical.unique は、常に元のdtypeを維持するようになりました#
以前は、カテゴリカルデータで Categorical.unique() を呼び出すと、新しい配列内の未使用のカテゴリが削除され、新しい配列のdtypeが元の配列とは異なるものになっていました (GH 18291)
この例として、以下を考慮すると
In [17]: dtype = pd.CategoricalDtype(['bad', 'neutral', 'good'], ordered=True)
In [18]: cat = pd.Categorical(['good', 'good', 'bad', 'bad'], dtype=dtype)
In [19]: original = pd.Series(cat)
In [20]: unique = original.unique()
以前の動作:
In [1]: unique
['good', 'bad']
Categories (2, object): ['bad' < 'good']
In [2]: original.dtype == unique.dtype
False
新しい動作:
In [21]: unique
Out[21]:
['good', 'bad']
Categories (3, object): ['bad' < 'neutral' < 'good']
In [22]: original.dtype == unique.dtype
Out[22]: True
DataFrame.combine_first() でdtypeを保持#
DataFrame.combine_first() はdtypeを保持するようになりました (GH 7509)
In [23]: df1 = pd.DataFrame({"A": [1, 2, 3], "B": [1, 2, 3]}, index=[0, 1, 2])
In [24]: df1
Out[24]:
A B
0 1 1
1 2 2
2 3 3
In [25]: df2 = pd.DataFrame({"B": [4, 5, 6], "C": [1, 2, 3]}, index=[2, 3, 4])
In [26]: df2
Out[26]:
B C
2 4 1
3 5 2
4 6 3
In [27]: combined = df1.combine_first(df2)
以前の動作:
In [1]: combined.dtypes
Out[2]:
A float64
B float64
C float64
dtype: object
新しい動作:
In [28]: combined.dtypes
Out[28]:
A float64
B int64
C float64
dtype: object
groupbyメソッド aggとtransformは、呼び出し可能オブジェクトの戻り値のdtypeを変更しなくなりました#
以前は、メソッド DataFrameGroupBy.aggregate(), SeriesGroupBy.aggregate(), DataFrameGroupBy.transform(), および SeriesGroupBy.transform() は、引数 func が呼び出し可能である場合、結果のdtypeをキャストする可能性があり、望ましくない結果につながることがありました (GH 21240)。キャストは、結果が数値であり、入力dtypeへのキャストが np.allclose で測定された値に変化をもたらさない場合に発生しました。現在はそのようなキャストは発生しません。
In [29]: df = pd.DataFrame({'key': [1, 1], 'a': [True, False], 'b': [True, True]})
In [30]: df
Out[30]:
key a b
0 1 True True
1 1 False True
以前の動作:
In [5]: df.groupby('key').agg(lambda x: x.sum())
Out[5]:
a b
key
1 True 2
新しい動作:
In [31]: df.groupby('key').agg(lambda x: x.sum())
Out[31]:
a b
key
1 1 2
DataFrameGroupBy.mean(), DataFrameGroupBy.median(), および GDataFrameGroupBy.var(), SeriesGroupBy.mean(), SeriesGroupBy.median(), および SeriesGroupBy.var() の float 結果#
以前は、これらのメソッドは入力値によって異なるdtypeを返す可能性がありました。現在、これらのメソッドは常にfloat dtypeを返します。 (GH 41137)
In [32]: df = pd.DataFrame({'a': [True], 'b': [1], 'c': [1.0]})
以前の動作:
In [5]: df.groupby(df.index).mean()
Out[5]:
a b c
0 True 1 1.0
新しい動作:
In [33]: df.groupby(df.index).mean()
Out[33]:
a b c
0 1.0 1.0 1.0
loc および iloc で値を設定する際にインプレース操作を試行#
loc または iloc を使用してカラム全体を設定する場合、pandasは既存のデータに値を挿入しようとし、完全に新しい配列を作成することはありません。
In [34]: df = pd.DataFrame(range(3), columns=["A"], dtype="float64")
In [35]: values = df.values
In [36]: new = np.array([5, 6, 7], dtype="int64")
In [37]: df.loc[[0, 1, 2], "A"] = new
新しい動作と古い動作の両方で、values のデータは上書きされますが、古い動作では df["A"] のdtypeが int64 に変更されました。
以前の動作:
In [1]: df.dtypes
Out[1]:
A int64
dtype: object
In [2]: np.shares_memory(df["A"].values, new)
Out[2]: False
In [3]: np.shares_memory(df["A"].values, values)
Out[3]: False
pandas 1.3.0では、df は引き続き values とデータを共有します。
新しい動作:
In [38]: df.dtypes
Out[38]:
A float64
dtype: object
In [39]: np.shares_memory(df["A"], new)
Out[39]: False
In [40]: np.shares_memory(df["A"], values)
Out[40]: True
frame[keys] = values を設定する際にインプレース操作をしない#
frame[keys] = values を使用して複数のカラムを設定する場合、新しい配列がこれらのキーの既存の配列を置き換えるため、既存の配列は上書きされません (GH 39510)。その結果、カラムは values のdtypeを保持し、既存の配列のdtypeにキャストされることはありません。
In [41]: df = pd.DataFrame(range(3), columns=["A"], dtype="float64")
In [42]: df[["A"]] = 5
古い動作では、5 は float64 にキャストされ、df をバックアップする既存の配列に挿入されました。
以前の動作:
In [1]: df.dtypes
Out[1]:
A float64
新しい動作では、新しい配列が作成され、整数dtypeの 5 が保持されます。
新しい動作:
In [43]: df.dtypes
Out[43]:
A int64
dtype: object
ブール型Seriesへの設定における一貫したキャスト#
dtype=bool の Series に非ブール値を設定すると、一貫して dtype=object にキャストされるようになりました (GH 38709)
In [1]: orig = pd.Series([True, False])
In [2]: ser = orig.copy()
In [3]: ser.iloc[1] = np.nan
In [4]: ser2 = orig.copy()
In [5]: ser2.iloc[1] = 2.0
以前の動作:
In [1]: ser
Out [1]:
0 1.0
1 NaN
dtype: float64
In [2]:ser2
Out [2]:
0 True
1 2.0
dtype: object
新しい動作:
In [1]: ser
Out [1]:
0 True
1 NaN
dtype: object
In [2]:ser2
Out [2]:
0 True
1 2.0
dtype: object
DataFrameGroupBy.rollingとSeriesGroupBy.rollingは、値にグループ化されたカラムを返さなくなりました#
グループ化されたカラムは、groupby.rolling 操作の結果から削除されるようになりました (GH 32262)
In [44]: df = pd.DataFrame({"A": [1, 1, 2, 3], "B": [0, 1, 2, 3]})
In [45]: df
Out[45]:
A B
0 1 0
1 1 1
2 2 2
3 3 3
以前の動作:
In [1]: df.groupby("A").rolling(2).sum()
Out[1]:
A B
A
1 0 NaN NaN
1 2.0 1.0
2 2 NaN NaN
3 3 NaN NaN
新しい動作:
In [46]: df.groupby("A").rolling(2).sum()
Out[46]:
B
A
1 0 NaN
1 1.0
2 2 NaN
3 3 NaN
ローリング分散と標準偏差における人工的な切り捨てを削除#
Rolling.std() および Rolling.var() は、それぞれ ~1e-8 および ~1e-15 より小さい結果を人為的にゼロに切り捨てることはなくなりました (GH 37051, GH 40448, GH 39872)。
ただし、より大きな値でローリングを行う場合、結果に浮動小数点アーティファクトが存在する可能性があります。
In [47]: s = pd.Series([7, 5, 5, 5])
In [48]: s.rolling(3).var()
Out[48]:
0 NaN
1 NaN
2 1.333333
3 0.000000
dtype: float64
MultiIndexを持つDataFrameGroupBy.rollingおよびSeriesGroupBy.rollingは、結果のレベルを削除しなくなりました#
DataFrameGroupBy.rolling() および SeriesGroupBy.rolling() は、MultiIndex を持つ DataFrame の結果内のレベルを削除しなくなりました。これにより、結果の MultiIndex でレベルの重複が認識される可能性がありますが、この変更はバージョン 1.1.3 で存在していた動作を復元します (GH 38787, GH 38523)。
In [49]: index = pd.MultiIndex.from_tuples([('idx1', 'idx2')], names=['label1', 'label2'])
In [50]: df = pd.DataFrame({'a': [1], 'b': [2]}, index=index)
In [51]: df
Out[51]:
a b
label1 label2
idx1 idx2 1 2
以前の動作:
In [1]: df.groupby('label1').rolling(1).sum()
Out[1]:
a b
label1
idx1 1.0 2.0
新しい動作:
In [52]: df.groupby('label1').rolling(1).sum()
Out[52]:
a b
label1 label1 label2
idx1 idx1 idx2 1.0 2.0
下位互換性のない API の変更#
依存関係の最小バージョン引き上げ#
一部の依存関係の最小サポートバージョンが更新されました。インストールされている場合、以下のバージョンが必要になります。
パッケージ |
最小バージョン |
必須 |
変更済み |
|---|---|---|---|
numpy |
1.17.3 |
X |
X |
pytz |
2017.3 |
X |
|
python-dateutil |
2.7.3 |
X |
|
bottleneck |
1.2.1 |
||
numexpr |
2.7.0 |
X |
|
pytest (開発) |
6.0 |
X |
|
mypy (開発) |
0.812 |
X |
|
setuptools |
38.6.0 |
X |
オプションのライブラリについては、一般的に最新バージョンを使用することが推奨されます。以下の表は、pandas の開発全体で現在テストされているライブラリごとの最低バージョンを示しています。最低テストバージョンより古いオプションのライブラリは動作する可能性がありますが、サポートされているとはみなされません。
パッケージ |
最小バージョン |
変更済み |
|---|---|---|
beautifulsoup4 |
4.6.0 |
|
fastparquet |
0.4.0 |
X |
fsspec |
0.7.4 |
|
gcsfs |
0.6.0 |
|
lxml |
4.3.0 |
|
matplotlib |
2.2.3 |
|
numba |
0.46.0 |
|
openpyxl |
3.0.0 |
X |
pyarrow |
0.17.0 |
X |
pymysql |
0.8.1 |
X |
pytables |
3.5.1 |
|
s3fs |
0.4.0 |
|
scipy |
1.2.0 |
|
sqlalchemy |
1.3.0 |
X |
表計算 |
0.8.7 |
X |
xarray |
0.12.0 |
|
xlrd |
1.2.0 |
|
xlsxwriter |
1.0.2 |
|
xlwt |
1.3.0 |
|
pandas-gbq |
0.12.0 |
詳細については、依存関係 および オプションの依存関係 を参照してください。
その他の API の変更#
部分的に初期化された
CategoricalDtypeオブジェクト (すなわちcategories=Noneを持つもの) は、完全に初期化されたdtypeオブジェクトと等しいとは比較されなくなりました (GH 38516)DataFrameの_constructor_expanddimおよびSeriesの_constructor_slicedへのアクセスは、AttributeErrorを発生させるようになりました。以前はNotImplementedErrorが発生していました (GH 38782)DataFrame.to_sql()に、今後の「SQLエンジン」をサポートするための新しいengineおよび**engine_kwargsパラメータを追加しました。現在も内部ではSQLAlchemyのみを使用していますが、turbodbc などのより多くのエンジンのサポートが計画されています (GH 36893)PeriodIndexの文字列表現から重複するfreqを削除しました (GH 41653)ExtensionDtypeサブクラスにとってExtensionDtype.construct_array_type()はオプションメソッドではなく必須メソッドになりました (GH 24860)ハッシュ不可能なpandasオブジェクトに対して
hashを呼び出すと、組み込みのエラーメッセージ (unhashable type: 'Series'など) を伴うTypeErrorが発生するようになりました。以前は'Series' objects are mutable, thus they cannot be hashedのようなカスタムメッセージが発生していました。さらに、isinstance(<Series>, abc.collections.Hashable)はFalseを返すようになりました (GH 40013)Styler.from_custom_template()は、テンプレート継承がより良いパースのために導入されたため、テンプレート名のための2つの新しい引数を持ち、古いnameを削除しました (GH 42053)。Styler属性へのサブクラス変更も必要です。
ビルド#
.pptxおよび.pdf形式のドキュメントは、ホイールまたはソースディストリビューションには含まれなくなりました。 (GH 30741)
非推奨#
DataFrameの集約操作およびDataFrameGroupBy操作における迷惑カラムの削除が非推奨になりました#
numeric_only=None (デフォルト) の DataFrame で集約操作 (例: .min, .max, .sum) を呼び出すと、集約操作が TypeError を発生させるカラムは黙って無視され、結果から削除されます。
この動作は非推奨です。将来のバージョンでは TypeError が発生するようになり、ユーザーは関数を呼び出す前に有効なカラムのみを選択する必要があります。
例えば
In [53]: df = pd.DataFrame({"A": [1, 2, 3, 4], "B": pd.date_range("2016-01-01", periods=4)})
In [54]: df
Out[54]:
A B
0 1 2016-01-01
1 2 2016-01-02
2 3 2016-01-03
3 4 2016-01-04
以前の動作:
In [3]: df.prod()
Out[3]:
Out[3]:
A 24
dtype: int64
将来の動作:
In [4]: df.prod()
...
TypeError: 'DatetimeArray' does not implement reduction 'prod'
In [5]: df[["A"]].prod()
Out[5]:
A 24
dtype: int64
同様に、DataFrameGroupBy に関数を適用する場合、関数が TypeError を発生させるカラムは現在黙って無視され、結果から削除されます。
この動作は非推奨です。将来のバージョンでは TypeError が発生するようになり、ユーザーは関数を呼び出す前に有効なカラムのみを選択する必要があります。
例えば
In [55]: df = pd.DataFrame({"A": [1, 2, 3, 4], "B": pd.date_range("2016-01-01", periods=4)})
In [56]: gb = df.groupby([1, 1, 2, 2])
以前の動作:
In [4]: gb.prod(numeric_only=False)
Out[4]:
A
1 2
2 12
将来の動作:
In [5]: gb.prod(numeric_only=False)
...
TypeError: datetime64 type does not support prod operations
In [6]: gb[["A"]].prod(numeric_only=False)
Out[6]:
A
1 2
2 12
その他の非推奨化#
スカラーを
Categoricalコンストラクタに渡すことが非推奨になりました (GH 38433)リストライクなデータを渡さずに
CategoricalIndexを構築することが非推奨になりました (GH 38944)Indexコンストラクタでサブクラス固有のキーワード引数を許可することが非推奨になりました。代わりに特定のサブクラスを直接使用してください (GH 14093, GH 21311, GH 22315, GH 26974)日付時刻ライクなオブジェクト (
timedelta64[ns],datetime64[ns],Datetime64TZDtype,PeriodDtype) のastype()メソッドで整数dtypeへの変換が非推奨になりました。代わりにvalues.view(...)を使用してください (GH 38544)。この非推奨化は後にpandas 1.4.0で元に戻されました。MultiIndex.is_lexsorted()およびMultiIndex.lexsort_depth()は非推奨になりました。代わりにMultiIndex.is_monotonic_increasing()を使用してください (GH 32259)Series.where(),Series.mask(),DataFrame.where(),DataFrame.mask()のキーワードtry_castは非推奨になりました。必要に応じて手動で結果をキャストしてください (GH 38836)Timestampオブジェクトとdatetime.dateオブジェクトの比較は非推奨になりました。たとえばts <= mydateの代わりにts <= pd.Timestamp(mydate)またはts.date() <= mydateを使用してください (GH 36131)Rolling.win_typeが"freq"を返すことは非推奨になりました (GH 38963)Rolling.is_datetimelikeは非推奨になりました (GH 38963)Series.__setitem__()およびDataFrame.__setitem__()のDataFrameインデクサは非推奨になりました (GH 39004)ExponentialMovingWindow.vol()は非推奨になりました (GH 39220).astypeを使用してdatetime64[ns]dtype とDatetimeTZDtype間で変換することは非推奨であり、将来のバージョンではエラーを発生させます。代わりにobj.tz_localizeまたはobj.dt.tz_localizeを使用してください (GH 38622)DataFrame.unstack(),DataFrame.shift(),Series.shift(), およびDataFrame.reindex()でfill_valueとして使用する場合のdatetime.dateオブジェクトからdatetime64へのキャストは非推奨です。代わりにpd.Timestamp(dateobj)を渡してください (GH 39767)Styler.set_na_rep()およびStyler.set_precision()は、それぞれ既存および新しい入力引数としてna_repおよびprecisionを持つStyler.format()に代わって非推奨になりました (GH 40134, GH 40425)Styler.where()は、Styler.applymap()を使用する代替の表現を支持して非推奨になりました (GH 40821)funcがリストライクまたは辞書ライクであり、TypeError以外の例外を発生させる場合、Series.transform()およびDataFrame.transform()で部分的な失敗を許可することは非推奨になりました。funcがTypeError以外の例外を発生させる場合、将来のバージョンではエラーを発生させます (GH 40211)read_csv()およびread_table()の引数error_bad_linesとwarn_bad_linesは、引数on_bad_linesを優先して非推奨になりました (GH 15122)DataFrameコンストラクタにおけるnp.ma.mrecords.MaskedRecordsのサポートは非推奨になりました。代わりに{name: data[name] for name in data.dtype.names}を渡してください (GH 40363)異なる数のレベルで
merge(),DataFrame.merge(), およびDataFrame.join()を使用することは非推奨になりました (GH 34862)ExcelWriterでの**kwargsの使用は非推奨になりました。代わりにキーワード引数engine_kwargsを使用してください (GH 40430)DataFrameおよびSeriesの集約におけるlevelキーワードは非推奨になりました。代わりにgroupbyを使用してください (GH 39983)Categorical.remove_categories(),Categorical.add_categories(),Categorical.reorder_categories(),Categorical.rename_categories(),Categorical.set_categories()のinplaceパラメータは非推奨になりました。将来のバージョンで削除されます (GH 37643)merge()がsuffixesキーワードと既存のカラムによって重複カラムを生成する動作は非推奨になりました (GH 22818)Categorical._codesの設定は非推奨になりました。代わりに目的のコードを持つ新しいCategoricalを作成してください (GH 40606)read_excel()およびExcelFile.parse()のオプション引数convert_floatは非推奨になりました (GH 41127)異なるタイムゾーンを持つ
DatetimeIndex.union()の動作は非推奨になりました。将来のバージョンでは、オブジェクトdtypeではなくUTCにキャストされます (GH 39328)engine="c"を指定したread_csv()で、範囲外のインデックスを持つusecolsを使用することは非推奨になりました (GH 25623)DataFrameコンストラクタで、最初の要素がCategoricalであるリストの特殊な扱いが非推奨になりました。代わりにpd.DataFrame({col: categorical, ...})として渡してください (GH 38845)DataFrameコンストラクタでdtypeが渡され、データがそのdtypeにキャストできない場合の動作は非推奨になりました。将来のバージョンでは、黙って無視されるのではなく、エラーを発生させるようになります (GH 24435)Timestamp.freq属性は非推奨になりました。これを使用するプロパティ (is_month_start,is_month_end,is_quarter_start,is_quarter_end,is_year_start,is_year_end) については、freqがある場合、たとえばfreq.is_month_start(ts)を使用してください (GH 15146)DatetimeTZDtypeデータとdatetime64[ns]dtype を持つSeriesまたはDataFrameの非推奨の構築。代わりにSeries(data).dt.tz_localize(None)を使用してください (GH 41555, GH 33401)大きな整数値と小さな整数 dtype を持つ
Series構築の非推奨の動作で、暗黙的にオーバーフローしていました。代わりにSeries(data).astype(dtype)を使用してください (GH 41734)浮動小数点データと整数 dtype を持つ
DataFrame構築の非推奨の動作で、損失がある場合でもキャストしていました。将来のバージョンでは、これはSeriesの動作に合わせて浮動小数のままになります (GH 41770)文字列を含むデータが渡され、
dtypeが渡されない場合に、Series構築におけるtimedelta64[ns]、datetime64[ns]、またはDatetimeTZDtypedtypes の非推奨の推論 (GH 33558)将来のバージョンでは、
datetime64[ns]データとDatetimeTZDtypeを使用してSeriesまたはDataFrameを構築すると、データは UTC 時刻ではなく壁面時刻として扱われます (DatetimeIndex の動作と一致します)。データを UTC 時刻として扱うには、pd.Series(data).dt.tz_localize("UTC").dt.tz_convert(dtype.tz)またはpd.Series(data.view("int64"), dtype=dtype)を使用してください (GH 33401)DataFrame.xs()とSeries.xs()にリストをkeyとして渡すことが非推奨になりました (GH 41760)Series.between()のinclusive引数のブール値引数が非推奨になり、標準引数として{"left", "right", "neither", "both"}を取るようになりました (GH 40628)以下に示すすべての引数を位置引数として渡すことは非推奨になりました (例外は記載されています) (GH 41485)
concat()(objsを除く)read_csv()(filepath_or_bufferを除く)read_table()(filepath_or_bufferを除く)DataFrame.clip()およびSeries.clip()(upperおよびlowerを除く)DataFrame.drop_duplicates()(subsetを除く)、Series.drop_duplicates()、Index.drop_duplicates()、およびMultiIndex.drop_duplicates()DataFrame.drop()(labelsを除く) およびSeries.drop()DataFrame.ffill()、Series.ffill()、DataFrame.bfill()、およびSeries.bfill()DataFrame.fillna()およびSeries.fillna()(valueを除く)DataFrame.interpolate()およびSeries.interpolate()(methodを除く)DataFrame.mask()およびSeries.mask()(condおよびotherを除く)DataFrame.reset_index()(levelを除く) およびSeries.reset_index()DataFrame.set_axis()およびSeries.set_axis()(labelsを除く)DataFrame.set_index()(keysを除く)DataFrame.sort_values()(byを除く) およびSeries.sort_values()DataFrame.where()およびSeries.where()(condおよびotherを除く)Index.set_names()およびMultiIndex.set_names()(namesを除く)MultiIndex.codes()(codesを除く)MultiIndex.set_levels()(levelsを除く)Resampler.interpolate()(methodを除く)
パフォーマンス改善#
IntervalIndex.isin()のパフォーマンス改善 (GH 38353)ヌル許容データ型に対する
Series.mean()のパフォーマンス改善 (GH 34814)ヌル許容データ型に対する
Series.isin()のパフォーマンス改善 (GH 38340)ヌル許容浮動小数点およびヌル許容整数 dtype に対する
method="pad"またはmethod="backfill"を持つDataFrame.fillna()のパフォーマンス改善 (GH 39953)method=kendallのDataFrame.corr()のパフォーマンス改善 (GH 28329)method=spearmanのDataFrame.corr()のパフォーマンス改善 (GH 40956, GH 41885)Rolling.corr()およびRolling.cov()のパフォーマンス改善 (GH 39388)RollingGroupby.corr()、ExpandingGroupby.corr()、ExpandingGroupby.corr()およびExpandingGroupby.cov()のパフォーマンス改善 (GH 39591)基本的なケース (区切り文字を含む) に対する
json_normalize()のパフォーマンス改善 (GH 40035 GH 15621)ExpandingGroupby集計メソッドのパフォーマンス改善 (GH 39664)Stylerのパフォーマンス改善。レンダリング時間が 50% 以上短縮され、DataFrame.to_html()と一致するようになりました (GH 39972 GH 39952, GH 40425)メソッド
Styler.set_td_classes()は、Styler.apply()およびStyler.applymap()と同じくらい高性能になり、場合によってはそれ以上になりました (GH 40453)timesを持つExponentialMovingWindow.mean()のパフォーマンス改善 (GH 39784)Python フォールバック実装が必要な場合の
DataFrameGroupBy.apply()およびSeriesGroupBy.apply()のパフォーマンス改善 (GH 40176)PyArrow Boolean 配列から pandas のヌル許容 Boolean 配列への変換におけるパフォーマンス改善 (GH 41051)
CategoricalDtype型のデータの連結におけるパフォーマンス改善 (GH 40193)ヌル許容データ型を持つ
DataFrameGroupBy.cummin()、SeriesGroupBy.cummin()、DataFrameGroupBy.cummax()、およびSeriesGroupBy.cummax()のパフォーマンス改善 (GH 37493)NaN 値を持つ
Series.nunique()のパフォーマンス改善 (GH 40865)DatetimeTZDtypeを持つDataFrame.transpose()およびSeries.unstack()のパフォーマンス改善 (GH 40149)エントリポイントの遅延ロードを伴う
Series.plot()およびDataFrame.plot()のパフォーマンス改善 (GH 41492)
バグ修正#
カテゴリカル#
スカラーデータが渡されたときに
CategoricalIndexが誤ってTypeErrorを発生させなかったバグ (GH 38614)CategoricalIndex.reindexが、渡されたIndexがカテゴリカルではないが、その値がカテゴリ内のすべてのラベルであった場合に失敗したバグ (GH 28690)dateオブジェクトのオブジェクト dtype 配列からCategoricalを構築するときにastypeと正しくラウンドトリップしなかったバグ (GH 38552)ndarrayおよびCategoricalDtypeからDataFrameを構築するときのバグ (GH 38857)DataFrame.reindex()が、新しいインデックスに重複が含まれ、古いインデックスがCategoricalIndexであった場合にIndexErrorを発生させていたバグ (GH 38906)タプルに似たカテゴリを持つ
Categorical.fillna()が、非カテゴリタプルで埋めるときにValueErrorの代わりにNotImplementedErrorを発生させていたバグ (GH 41914)
日付時刻ライク#
DataFrameおよびSeriesコンストラクタが、Timestamp(またはTimedelta)dataからdtype=datetime64[ns](またはtimedelta64[ns]) で構築するときに、ナノ秒を誤って削除することがあったバグ (GH 38032)DataFrame.first()およびSeries.first()が、最初の日が月の最終日である場合に、1ヶ月のオフセットで誤った結果を返していたバグ (GH 29623)ミスマッチな
datetime64データとtimedelta64dtype、またはその逆でDataFrameまたはSeriesを構築するときにTypeErrorが発生しなかったバグ (GH 38575, GH 38764, GH 38792)datetime64[ns]dtype の範囲外のdatetimeオブジェクト、またはtimedelta64[ns]dtype の範囲外のtimedeltaオブジェクトでSeriesまたはDataFrameを構築するときのバグ (GH 38792, GH 38965)DatetimeIndex.intersection()、DatetimeIndex.symmetric_difference()、PeriodIndex.intersection()、PeriodIndex.symmetric_difference()が、CategoricalIndexと演算するときに常にオブジェクト dtype を返していたバグ (GH 38741)DatetimeIndex.intersection()が、n != 1の非 Tick 頻度で誤った結果を与えていたバグ (GH 42104)Series.where()がdatetime64値を誤ってint64にキャストしていたバグ (GH 37682)Categoricalがdatetimeオブジェクトを誤ってTimestampに型変換していたバグ (GH 38878)ナノ秒
datetime64の実装範囲をわずかに超えるTimestampオブジェクトとdatetime64オブジェクト間の比較におけるバグ (GH 39221)Timestampの実装範囲に近い値に対するTimestamp.round()、Timestamp.floor()、Timestamp.ceil()のバグ (GH 39244)Timedeltaの実装範囲に近い値に対するTimedelta.round()、Timedelta.floor()、Timedelta.ceil()のバグ (GH 38964)date_range()が、コーナーケースでOutOfBoundsDatetimeを発生させる代わりにNaTを含むDatetimeIndexを誤って作成していたバグ (GH 24124)infer_freq()が、DatetimeIndexにタイムゾーンがあり、DST 境界を越える場合に、'H' 頻度を誤って推論できなかったバグ (GH 39556)DatetimeArrayまたはTimedeltaArrayによってバックアップされたSeriesが、配列のfreqをNoneに設定できないことがあったバグ (GH 41425)
Timedelta#
timedelta64[ns]の範囲外の非ナノ秒単位を持つnp.timedelta64オブジェクトからTimedeltaを構築するときのバグ (GH 38965)TimedeltaIndexの構築がnp.datetime64("NaT")オブジェクトを誤って受け入れていたバグ (GH 39462)記号のみで数字のない入力文字列から
Timedeltaを構築するときにエラーが発生しなかったバグ (GH 39710)TimedeltaIndexおよびto_timedelta()が、timedelta64[ns]に変換するときにオーバーフローする非ナノ秒timedelta64配列が渡されたときにエラーを発生させなかったバグ (GH 40008)
タイムゾーン#
数値#
DataFrame.quantile()、DataFrame.sort_values()が誤った後続のインデックス付け動作を引き起こしていたバグ (GH 38351)DataFrame.sort_values()が、空のbyに対してIndexErrorを発生させていたバグ (GH 40258)include=np.numberを持つDataFrame.select_dtypes()が、数値ExtensionDtype列を削除していたバグ (GH 35340)DataFrame.mode()およびSeries.mode()が、空の入力に対して一貫した整数Indexを保持しなかったバグ (GH 33321)DataFrame に
np.infが含まれていた場合のDataFrame.rank()のバグ (GH 32593)axis=0を持つDataFrame.rank()が、比較不可能な型を持つ列が含まれていた場合にIndexErrorを発生させていたバグ (GH 38932)Series.rank()、DataFrame.rank()、DataFrameGroupBy.rank()、およびSeriesGroupBy.rank()が、最も負のint64値を欠損値として扱っていたバグ (GH 32859)include="int"を持つDataFrame.select_dtypes()が Windows と Linux で異なる動作をしていたバグ (GH 36596)DataFrame.apply()およびDataFrame.agg()が、引数func="size"が渡されたときに、行または列ではなく、DataFrame 全体で操作していたバグ (GH 39934)DataFrame.transform()が、辞書が渡され、列が欠落している場合にSpecificationErrorを発生させていたバグ。代わりにKeyErrorを発生させるようになりました (GH 40004)pct=Trueおよび連続するグループ間で等しい値を持つDataFrameGroupBy.rank()およびSeriesGroupBy.rank()が誤った結果を与えていたバグ (GH 40518)Series.count()が、32 ビットプラットフォームで引数level=Noneの場合にint32の結果を生成していたバグ (GH 40908)SeriesおよびDataFrameの、オブジェクトデータに対してanyおよびallメソッドを持つ縮約がブール値を返さなかったバグ (GH 12863, GH 35450, GH 27709)Series.clip()が、Series に NA 値が含まれ、ヌル許容整数または浮動小数点データ型を持つ場合に失敗していたバグ (GH 40851)np.int64dtype のotherを持つUInt64Index.where()およびUInt64Index.putmask()が、誤ってTypeErrorを発生させていたバグ (GH 41974)1つ以上の集計関数が結果を生成できなかった場合に、
DataFrame.agg()が提供された集計関数の順序で集計軸をソートしなかったバグ (GH 33634)DataFrame.clip()が、欠損値をしきい値なしとして解釈しなかったバグ (GH 40420)
変換#
orient='records'を持つSeries.to_dict()が、Python のネイティブ型を返すようになったバグ (GH 25969)datetime に似た (
datetime64[ns],datetime64[ns, tz],timedelta64,period) dtypes 間で変換するときに、Series.view()およびIndex.view()のバグ (GH 39788)空の
np.recarrayからDataFrameを作成するときに、元の dtype が保持されなかったバグ (GH 40121)frozensetから構築するときに、DataFrameがTypeErrorを発生させなかったバグ (GH 40163)データがその dtype にキャストできない場合に、
Index構築が渡されたdtypeを暗黙的に無視していたバグ (GH 21311)StringArray.astype()が NumPy にフォールバックし、dtype='categorical'に変換するときにエラーを発生させていたバグ (GH 40450)factorize()が、int64、uint64、および float64 より低い数値 NumPy dtype を持つ配列が与えられた場合に、一意の値が元の dtype を保持しなかったバグ (GH 41132)ExtensionDtypeを持つ配列ライクとcopy=Trueを含む辞書を使用してDataFrameを構築するときに、コピーが作成されなかったバグ (GH 38939)qcut()が、Float64DTypeを入力として受け取ったときにエラーを発生させていたバグ (GH 40730)datetime64[ns]データとdtype=objectを持つDataFrameおよびSeriesの構築が、Timestampオブジェクトではなくdatetimeオブジェクトを生成していたバグ (GH 41599)timedelta64[ns]データとdtype=objectを持つDataFrameおよびSeriesの構築が、Timedeltaオブジェクトではなくnp.timedelta64オブジェクトを生成していたバグ (GH 41599)PeriodまたはIntervalオブジェクトの 2 次元オブジェクト dtypenp.ndarrayが与えられたときに、それぞれPeriodDtypeまたはIntervalDtypeにキャストされなかったDataFrame構築のバグ (GH 41812)int64dtype の範囲に収まらないrangeオブジェクトからSeriesを作成するときのバグ (GH 30173)すべてのタプルキーを持つ
dictと、リインデックスを必要とするIndexからSeriesを作成するときのバグ (GH 41707)infer_dtype()が Period dtype を持つ Series、Index、または配列を認識しなかったバグ (GH 23553)一般的な
ExtensionArrayオブジェクトに対してinfer_dtype()がエラーを発生させていたバグ。代わりに"unknown-array"を返すようになりました (GH 37367)DataFrame.convert_dtypes()が、空の DataFrame で呼び出されたときに誤ってValueErrorを発生させていたバグ (GH 40393)
文字列#
pyarrow.ChunkedArrayからStringArrayへの変換で、元の配列にチャンクがゼロであった場合のバグ (GH 41040)StringDTypeデータに対してregex=Trueを持つSeries.replace()およびDataFrame.replace()が置換を無視していたバグ (GH 41333, GH 35977)StringArrayを持つSeries.str.extract()が、空のDataFrameに対してオブジェクト dtype を返していたバグ (GH 41441)regex=Falseの場合にSeries.str.replace()がcase引数を無視していたバグ (GH 41602)
Interval#
IntervalIndex.intersection()およびIntervalIndex.symmetric_difference()が、CategoricalIndexと演算するときに常にオブジェクト dtype を返していたバグ (GH 38653, GH 38741)IntervalIndex.intersection()が、Indexオブジェクトの少なくとも1つに、他方に存在する重複が含まれている場合に重複を返していたバグ (GH 38743)IntervalIndex.union()、IntervalIndex.intersection()、IntervalIndex.difference()、およびIntervalIndex.symmetric_difference()は、互換性のない dtype を持つ別のIntervalIndexと演算するときに、TypeErrorを発生させる代わりに適切な dtype にキャストするようになりました (GH 39267)PeriodIndex.union()、PeriodIndex.intersection()、PeriodIndex.symmetric_difference()、PeriodIndex.difference()は、互換性のない dtype を持つ別のPeriodIndexと演算するときに、IncompatibleFrequencyを発生させる代わりにオブジェクト dtype にキャストするようになりました (GH 39306)NA 値が存在する場合の
IntervalIndex.is_monotonic()、IntervalIndex.get_loc()、IntervalIndex.get_indexer_for()、およびIntervalIndex.__contains__()のバグ (GH 41831)
インデックス付け#
Index.union()およびMultiIndex.union()が、Indexが単調でなかったり、sortがFalseに設定されていたりした場合に、重複するIndex値を削除していたバグ (GH 36289, GH 31326, GH 40862)CategoricalIndex.get_indexer()が、非ユニークな場合にInvalidIndexErrorを発生させなかったバグ (GH 38372)targetがCategoricalDtypeを持ち、インデックスとターゲットの両方に NA 値が含まれている場合のIntervalIndex.get_indexer()のバグ (GH 41934)ブールリストで入力がフィルタリングされ、設定する値が低次元のリストであった場合に、
Series.loc()がValueErrorを発生させていたバグ (GH 20438)重複する列に複数の値を設定するときに
DataFrame.__setitem__()がValueErrorを発生させていたバグ (GH 15695)ミリ秒を持つ
Indexに対して文字列スライスでDataFrame.loc()、Series.loc()、DataFrame.__getitem__()およびSeries.__getitem__()が、非単調なDatetimeIndexに対して誤った要素を返していたバグ (GH 33146)タイムゾーン対応インデックスを持つ
DataFrame.reindex()およびSeries.reindex()が、method="ffill"およびmethod="bfill"と指定されたtoleranceに対してTypeErrorを発生させていたバグ (GH 38566)fill_valueがオブジェクト dtype にキャストする必要がある場合に、datetime64[ns]またはtimedelta64[ns]を持つDataFrame.reindex()が誤って整数にキャストしていたバグ (GH 39755)空の
DataFrameに、指定された列と空ではないDataFrame値を使用して設定するときにDataFrame.__setitem__()がValueErrorを発生させていたバグ (GH 38831)DataFrameに重複する列がある場合に、ユニークな列に対して操作するときにDataFrame.loc.__setitem__()がValueErrorを発生させていたバグ (GH 38521)辞書値で設定するときに、混合 dtype を持つ
DataFrame.iloc.__setitem__()およびDataFrame.loc.__setitem__()のバグ (GH 38335)ブールジェネレータが提供されたときに
Series.loc.__setitem__()およびDataFrame.loc.__setitem__()がKeyErrorを発生させていたバグ (GH 39614)ジェネレータが提供されたときに
Series.iloc()およびDataFrame.iloc()がKeyErrorを発生させていたバグ (GH 39614)右辺が列数が誤っている
DataFrameである場合にDataFrame.__setitem__()がValueErrorを発生させなかったバグ (GH 38604)スカラーインデクサーで
Seriesを設定するときにSeries.__setitem__()がValueErrorを発生させていたバグ (GH 38303)入力として使用された
DataFrameが1行しかなかった場合に、DataFrame.loc()がMultiIndexのレベルを削除していたバグ (GH 10521)Indexがミリ秒を持つ場合に、既存の文字列でスライスするときにDataFrame.__getitem__()およびSeries.__getitem__()が常にKeyErrorを発生させていたバグ (GH 33589)数値
Seriesにtimedelta64またはdatetime64値を設定するときに、オブジェクト dtype にキャストされなかったバグ (GH 39086, GH 39619)ミスマッチな
IntervalDtypeを持つSeriesまたはDataFrameにInterval値を設定するときに、新しい値が既存の dtype に誤ってキャストされていたバグ (GH 39120)整数 dtype を持つ
Seriesにdatetime64値を設定するときに、datetime64 値が誤って整数にキャストされていたバグ (GH 39266)Datetime64TZDtypeを持つSeriesにnp.datetime64("NaT")を設定するときに、タイムゾーンに依存しない値がタイムゾーン対応として誤って扱われていたバグ (GH 39769)key=NaNでmethodが指定されているがIndexにNaNがない場合にIndex.get_loc()がKeyErrorを発生させないバグ (GH 39382)タイムゾーン対応のインデックスに
np.datetime64("NaT")を挿入する際に、タイムゾーン対応ではない値を誤ってタイムゾーン対応として処理するDatetimeIndex.insert()のバグ (GH 39769)既存の
frame.columnsに保持できない新しい列を設定する際、またはSeries.reset_index()またはDataFrame.reset_index()で互換性のある dtype にキャストする代わりに、Index.insert()で誤って例外を発生させるバグ (GH 39068)RangeIndex.append()で、長さ 1 の単一オブジェクトが誤って連結されるバグ (GH 39401)RangeIndex.astype()で、CategoricalIndexに変換する際に、カテゴリがRangeIndexの代わりにInt64Indexになるバグ (GH 41263)ブールインデクサーを使用して
numpy.timedelta64の値をオブジェクト-dtype のSeriesに設定するバグ (GH 39488)atまたはiatを使用して数値値をブール-dtypes のSeriesに設定する際に、オブジェクト-dtype へのキャストに失敗するバグ (GH 39582)行スライスでインデックスを付け、リストを値として設定しようとすると
DataFrame.__setitem__()とDataFrame.iloc.__setitem__()がValueErrorを発生させるバグ (GH 40440)キーが
MultiIndexに見つからず、レベルが完全に指定されていない場合にDataFrame.loc()がKeyErrorを発生させないバグ (GH 41170)拡張して設定する際に、拡張軸のインデックスに重複がある場合に
DataFrame.loc.__setitem__()が誤って例外を発生させるバグ (GH 40096)MultiIndexを使用したDataFrame.loc.__getitem__()で、少なくとも1つのインデックス列に float dtype があり、スカラーを取得する際に float にキャストされるバグ (GH 41369)DataFrame.loc()が非ブールインデックス要素を誤ってマッチングするバグ (GH 20432)CategoricalIndexを持つSeriesまたはDataFrameでnp.nanでインデックスを付ける際に、np.nanキーが存在する場合に誤ってKeyErrorを発生させるバグ (GH 41933)ExtensionDtypeを使用したSeries.__delitem__()で、誤ってndarrayにキャストされるバグ (GH 40386)CategoricalIndexを持つDataFrame.at()で、整数キーが渡された場合に誤った結果を返すバグ (GH 41846)インデクサーに重複がある場合、
DataFrame.loc()が誤った順序でMultiIndexを返すバグ (GH 40978)DatetimeIndexを使用して列名としてstrサブクラスを使用するとDataFrame.__setitem__()がTypeErrorを発生させるバグ (GH 37366)一致しない
freqを持つPeriodが与えられたときにPeriodIndex.get_loc()がKeyErrorを発生させないバグ (GH 41670)UInt64Indexと負の整数キーを使用した.loc.__getitem__で、場合によってはKeyErrorの代わりにOverflowErrorを発生させ、他の場合は正の整数にラップアラウンドするバグ (GH 41777)無効な
method、limit、またはtolerance引数を指定した場合に、場合によってはIndex.get_indexer()がValueErrorを発生させないバグ (GH 41918)無効な文字列を渡す際に、
TimedeltaIndexを持つSeriesまたはDataFrameをスライスする際に、TypeErrorの代わりにValueErrorを発生させるバグ (GH 41821)Index.where()の動作は、Index.putmask()の動作を反映するようになりました。つまり、index.where(mask, other)はindex.putmask(~mask, other)と一致します (GH 39412)
欠損値#
Grouperがdropna引数を正しく伝播しないバグ。DataFrameGroupBy.transform()はdropna=Trueの欠損値を正しく処理するようになりました (GH 35612)isna()、Series.isna()、Index.isna()、DataFrame.isna()、および対応するnotna関数がDecimal("NaN")オブジェクトを認識しないバグ (GH 39409)DataFrame.fillna()がdowncastキーワードに辞書を受け付けないバグ (GH 40809)isna()がヌル許容型に対してマスクのコピーを返さず、その後のマスク変更が元の配列を変更してしまうバグ (GH 40935)DataFrameの構築で、NaNを含む浮動小数点データと整数dtypeがNaNを保持せずにキャストされるバグ (GH 26919)Series.isin()とMultiIndex.isin()が、タプルに含まれている場合、すべての NaN を同等として扱わないバグ (GH 41836)
MultiIndex#
MultiIndexが非一意でlevelが指定されていない場合にDataFrame.drop()がTypeErrorを発生させるバグ (GH 36293)MultiIndex.intersection()が結果にNaNを重複させるバグ (GH 38623)MultiIndexがNaNを含んでいても順序が異なる場合にMultiIndex.equals()が誤ってTrueを返すバグ (GH 38439)CategoricalIndexと交差する際に、MultiIndex.intersection()が常に空の結果を返すバグ (GH 38653)インデックスにソートできないエントリが含まれている場合に
MultiIndex.difference()が誤ってTypeErrorを発生させるバグ (GH 41915)空の
MultiIndexで使用され、特定のレベルのみをインデックス付けする際にMultiIndex.reindex()がValueErrorを発生させるバグ (GH 41170)フラットな
Indexに対して再インデックスを付ける際にMultiIndex.reindex()がTypeErrorを発生させるバグ (GH 41707)
I/O#
display.max_seq_items=1の場合のIndex.__repr__()のバグ (GH 38415)decimal引数が設定され、engine="python"の場合にread_csv()が科学的表記法を認識しないバグ (GH 31920)read_csv()で、NA値がコメント文字列を含む場合に、NA値をコメントとして解釈するバグ。engine="python"で修正されました (GH 34002)read_csv()で、ファイルにデータ行がない場合に、複数のヘッダー列とindex_colが指定されているとIndexErrorを発生させるバグ (GH 38292)engine="python"の場合にread_csv()がnamesと異なる長さのusecolsを受け付けないバグ (GH 16469)engine="python"でdelimiter=","とusecolsおよびparse_datesが指定されている場合に、read_csv()がオブジェクト dtype を返すバグ (GH 35873)engine="c"でnamesとparse_datesが指定されている場合にread_csv()がTypeErrorを発生させるバグ (GH 33699)read_clipboard()とDataFrame.to_clipboard()が WSL で動作しないバグ (GH 38527)read_sql()、read_sql_query()、およびread_sql_table()のparse_dates引数にカスタムエラー値を指定できるようになりました (GH 35185)DataFrameまたはSeriesのサブクラスに適用しようとするとDataFrame.to_hdf()とSeries.to_hdf()がKeyErrorを発生させるバグ (GH 33748)非文字列 dtype の DataFrame を保存する際に
HDFStore.put()が誤ったTypeErrorを発生させるバグ (GH 34274)json_normalize()で、ジェネレータオブジェクトの最初の要素が返される DataFrame に含まれないバグ (GH 35923)engine="python"で、列が日付として解析されるべきであり、usecolsが指定されている場合に、read_csv()が日付列に桁区切りを適用するバグ (GH 39365)複数のヘッダーとインデックス列が指定されている場合に、
read_excel()がMultiIndex名を前方埋めするバグ (GH 34673)read_excel()がset_option()を尊重しないバグ (GH 34252)read_csv()がヌル許容ブール dtype のtrue_valuesとfalse_valuesを切り替えないバグ (GH 34655)orient="split"の場合にread_json()が数値文字列インデックスを維持しないバグ (GH 28556)chunksizeがゼロ以外で、クエリが結果を返さない場合に、read_sql()が空のジェネレータを返していました。現在は、単一の空の DataFrame を持つジェネレータを返します (GH 34411)whereパラメーターを使用してカテゴリカル文字列列でフィルタリングする際に、read_hdf()が予期しないレコードを返すバグ (GH 39189)datetimesがヌルの場合にread_sas()がValueErrorを発生させるバグ (GH 39725)read_excel()が単一列スプレッドシートから空の値を削除するバグ (GH 39808)read_excel()が一部のファイルタイプで末尾の空の行/列をロードするバグ (GH 41167)Excel ファイルに
MultiIndexヘッダーが続き、2つの空の行とインデックスがない場合にread_excel()がAttributeErrorを発生させるバグ (GH 40442)read_excel()、read_csv()、read_table()、read_fwf()、およびread_clipboard()で、MultiIndexヘッダーの後にインデックスのない空の行が1行ある場合に、その行が削除されるバグ (GH 40442)index=Falseの場合にDataFrame.to_string()が切り捨て列を誤って配置するバグ (GH 40904)index=Falseの場合にDataFrame.to_string()が余分なドットを追加し、切り捨て行を誤って位置合わせするバグ (GH 40904)read_orc()が常にAttributeErrorを発生させるバグ (GH 40918)read_csv()とread_table()がnamesとprefixが定義されている場合にprefixを黙って無視するバグ。現在はValueErrorを発生させます (GH 39123)mangle_dupe_colsがTrueに設定されている場合に、read_csv()とread_excel()が重複する列名の dtype を尊重しないバグ (GH 35211)delimiterとsepが定義されている場合にread_csv()がsepを黙って無視するバグ。現在はValueErrorを発生させます (GH 39823)sys.setprofileが以前に呼び出されていた場合に、read_csv()とread_table()が引数を誤って解釈するバグ (GH 41069)PyArrow から pandas への変換 (Parquet の読み込みなど) で、ヌル許容 dtype と、データバッファサイズが dtype サイズの倍数ではない PyArrow 配列がある場合のバグ (GH 40896)
read_excel()が、ユーザーがengine引数を指定したにもかかわらず、pandas がファイルタイプを特定できない場合にエラーを発生させるバグ (GH 41225)read_clipboard()で、最初の列にヌル値がある場合、Excel ファイルからコピーすると値が誤った列にずれるバグ (GH 41108)文字列列を互換性のない列に追加しようとすると、
DataFrame.to_hdf()とSeries.to_hdf()がTypeErrorを発生させるバグ (GH 41897)
期間#
プロット#
2D の
ax引数が渡された場合にplotting.scatter_matrix()が例外を発生させるバグ (GH 16253)Matplotlib の
constrained_layoutが有効な場合に警告を抑制するようになりました (GH 25261)DataFrame.plot()で、関数が繰り返し呼び出され、一部の呼び出しでyerrが使用され、他の呼び出しでは使用されない場合に、凡例に誤った色が表示されるバグ (GH 39522)DataFrame.plot()で、関数が繰り返し呼び出され、一部の呼び出しでsecondary_yが使用され、他の呼び出しでlegend=Falseが使用される場合に、凡例に誤った色が表示されるバグ (GH 40044)dark_backgroundテーマが選択されている場合に、DataFrame.plot.box()のキャップまたは最小/最大マーカーが表示されないバグ (GH 40769)
Groupby/resample/rolling#
PeriodDtype列を持つDataFrameGroupBy.agg()とSeriesGroupBy.agg()で、結果が過度に積極的にキャストされるバグ (GH 38254)SeriesGroupBy.value_counts()で、グループ化されたカテゴリカル Series の未観測カテゴリが集計されないバグ (GH 38672)SeriesGroupBy.value_counts()で、空の Series でエラーが発生するバグ (GH 39172)GroupBy.indices()で、groupby キーにヌル値が存在する場合に、存在しないインデックスが含まれるバグ (GH 9304)DataFrameGroupBy.sum()とSeriesGroupBy.sum()で、Kahan 総和を使用することで精度が失われるバグが修正されました (GH 38778)DataFrameGroupBy.cumsum()、SeriesGroupBy.cumsum()、DataFrameGroupBy.mean()、およびSeriesGroupBy.mean()で、Kahan 総和を使用することで精度が失われるバグが修正されました (GH 38934)Resampler.aggregate()とDataFrame.transform()で、欠損キーに異なる dtype が混在している場合にSpecificationErrorの代わりにTypeErrorを発生させるバグ (GH 39025)ExtensionDtype列を持つDataFrameGroupBy.idxmin()とDataFrameGroupBy.idxmax()のバグ (GH 38733)インデックスが
NaTで構成されるPeriodIndexである場合にSeries.resample()が例外を発生させるバグ (GH 39227)RollingGroupby.corr()とExpandingGroupby.corr()で、各グループよりも長いotherが提供された場合に、groupby 列がnp.nanの代わりに0を返すバグ (GH 39591)ExpandingGroupby.corr()とExpandingGroupby.cov()で、各グループよりも長いotherが提供された場合に、np.nanの代わりに1を返すバグ (GH 39591)DataFrameGroupBy.mean()、SeriesGroupBy.mean()、DataFrameGroupBy.median()、SeriesGroupBy.median()、およびDataFrame.pivot_table()がメタデータを伝播しないバグ (GH 28283)Series.rolling()とDataFrame.rolling()で、ウィンドウがオフセットで日付が降順の場合に、ウィンドウ境界が正しく計算されないバグ (GH 40002)空の
SeriesまたはDataFrameでのSeries.groupby()とDataFrame.groupby()で、idxmax、idxmin、mad、min、max、sum、prod、およびskewメソッドを直接使用するか、apply、aggregate、またはresampleを介して使用する場合に、インデックス、列、および/またはデータ型が失われるバグ (GH 26411)DataFrameGroupBy.apply()とSeriesGroupBy.apply()で、RollingGroupbyオブジェクトで使用された場合に、Indexの代わりにMultiIndexが作成されるバグ (GH 39732)DataFrameGroupBy.sample()で、weightsが指定されており、インデックスがInt64Indexである場合にエラーが発生するバグ (GH 39927)DataFrameGroupBy.aggregate()とResampler.aggregate()で、辞書が渡され、列が欠損している場合にSpecificationErrorを発生させる場合があるバグ。現在は常にKeyErrorを発生させます (GH 40004)DataFrameGroupBy.sample()で、結果を計算する前に列選択が適用されないバグ (GH 39928)ExponentialMovingWindowで__getitem__を呼び出す際にtimesを指定すると、誤ってValueErrorを発生させるバグ (GH 40164)ExponentialMovingWindowで__getitem__を呼び出す際にcom、span、alphaまたはhalflife属性が保持されないバグ (GH 40164)ExponentialMovingWindowは、不正確な計算のためadjust=Falseでtimesを指定した場合にNotImplementedErrorを発生させるようになりました (GH 40098)ExponentialMovingWindowGroupby.mean()で、engine='numba'の場合にtimes引数が無視されるバグ (GH 40951)ExponentialMovingWindowGroupby.mean()で、複数のグループの場合に誤った時間が使用されるバグ (GH 40951)ExponentialMovingWindowGroupbyで、非自明なグループの場合に times ベクトルと値の同期が失われるバグ (GH 40951)インデックスがソートされていない場合に、
Series.asfreq()とDataFrame.asfreq()が行を削除するバグ (GH 39805)DataFrameの集計関数で、levelキーワードが与えられた場合にnumeric_only引数を尊重しないバグ (GH 40660)SeriesGroupBy.aggregate()で、ユーザー定義関数を使用してオブジェクト型Indexを持つ Series を集計すると、誤ったIndexの形状になるバグ (GH 40014)RollingGroupbyで、groupbyのas_index=False引数が無視されるバグ (GH 39433)DataFrameGroupBy.any()、SeriesGroupBy.any()、DataFrameGroupBy.all()およびSeriesGroupBy.all()で、skipna=TrueであってもNAを保持するヌル許容型列で使用するとValueErrorを発生させるバグ (GH 40585)DataFrameGroupBy.cummin()、SeriesGroupBy.cummin()、DataFrameGroupBy.cummax()およびSeriesGroupBy.cummax()で、int64実装の境界付近の整数値を誤って丸めるバグ (GH 40767)ヌル許容 dtype を持つ
DataFrameGroupBy.rank()とSeriesGroupBy.rank()が誤ってTypeErrorを発生させるバグ (GH 41010)DataFrameGroupBy.cummin()、SeriesGroupBy.cummin()、DataFrameGroupBy.cummax()およびSeriesGroupBy.cummax()で、float にキャストする際に往復できないほど大きいヌル許容データ型の場合に誤った結果を計算するバグ (GH 37493)DataFrame.rolling()で、計算が数値的に安定していない場合に、すべてのNaNウィンドウでmin_periods=0の場合に平均ゼロを返すバグ (GH 41053)DataFrame.rolling()で、計算が数値的に安定していない場合に、すべてのNaNウィンドウでmin_periods=0の場合に合計がゼロでない値を返すバグ (GH 41053)SeriesGroupBy.agg()で、順序保持集計で順序付けされたCategoricalDtypeを保持できないバグ (GH 41147)DataFrameGroupBy.min()、SeriesGroupBy.min()、DataFrameGroupBy.max()およびSeriesGroupBy.max()で、複数のオブジェクト型列とnumeric_only=Falseの場合に誤ってValueErrorを発生させるバグ (GH 41111)GroupBy オブジェクトの
axis=0とrankメソッドのキーワードaxis=1を持つDataFrameGroupBy.rank()のバグ (GH 41320)非一意の列を持つ
DataFrameGroupBy.__getitem__()が、DataFrameGroupByの代わりに不正な形式のSeriesGroupByを誤って返すバグ (GH 41427)非一意の列を持つ
DataFrameGroupBy.transform()が誤ってAttributeErrorを発生させるバグ (GH 41427)非一意の列を持つ
Resampler.apply()が重複した列を誤って削除するバグ (GH 41445)Series.groupby()の集計で、dtype に対して無効な集計 (datetime64[ns]dtype の.prodなど) でTypeErrorを発生させる代わりに、誤って空のSeriesを返すバグ (GH 41342)DataFrameGroupByの集計で、有効な列がない場合に、その集計に対して無効な dtype を持つ列を削除できないバグ (GH 41291)DataFrame.rolling.__iter__()で、onが結果オブジェクトのインデックスに割り当てられないバグ (GH 40373)DataFrameGroupBy.transform()とDataFrameGroupBy.agg()でengine="numba"の場合に、*argsがユーザーが渡した関数とともにキャッシュされるバグ (GH 41647)DataFrameGroupByメソッドagg、transform、sum、bfill、ffill、pad、pct_change、shift、ohlcが.columns.namesを削除するバグ (GH 41497)
再整形#
merge()で、部分的なインデックスとright_index=Trueを使用して内部結合を実行する際に、インデックス間に重複がない場合にエラーを発生させるバグ (GH 33814)欠損レベルを持つ
DataFrame.unstack()が誤ったインデックス名になるバグ (GH 37510)merge_asof()で、left_index=Trueとright_on指定がある場合に、左のインデックスではなく右のインデックスを伝播するバグ (GH 33463)MultiIndexを持つ DataFrame でのDataFrame.join()で、両方のインデックスのいずれかが1つのレベルしかない場合に誤った結果を返すバグ (GH 36909)merge_asof()は、数値以外の結合列の場合に、わかりにくいTypeErrorの代わりにValueErrorを発生させるようになりました (GH 29130)DataFrame.join()で、DataFrame が、少なくとも1つの次元がアルファベット順にソートされていないカテゴリカルな dtype のMultiIndexを持つ場合に、値を正しく割り当てないバグ (GH 38502)Series.value_counts()とSeries.mode()は、元の順序で一貫したキーを返すようになりました (GH 12679、 GH 11227 および GH 39007)DataFrame.stack()で、MultiIndex列のNaNを正しく処理しないバグ (GH 39481)DataFrame.apply()で、引数funcが文字列でaxis=1であり、axis 引数がサポートされていない場合に誤った結果を返すバグ。現在はValueErrorを発生させます (GH 39211)DataFrame.sort_values()で、ignore_index=Trueの場合に列でソートした後、インデックスを正しく再形成しないバグ (GH 39464)DataFrame.append()がExtensionDtypeデータ型の組み合わせで誤った dtypes を返すバグ (GH 39454)DataFrame.append()がdatetime64とtimedelta64データ型の組み合わせで使用された場合に誤った dtypes を返すバグ (GH 39574)MultiIndexを持つDataFrameに、IndexがMultiIndexではないSeriesを追加するときのDataFrame.append()のバグ (GH 41707)空の DataFrame で操作するときに、
DataFrame.pivot_table()が単一値に対してMultiIndexを返すバグ (GH 13483)Indexがnumpy.all()関数に渡せるようになりました (GH 40180)DataFrame.stack()がMultiIndex内のCategoricalDtypeを保持しないバグ (GH 36991)入力シーケンスにハッシュ不可能な項目が含まれている場合に
to_datetime()がエラーを発生させるバグ (GH 39756)ignore_indexがTrueで値がスカラーの場合にSeries.explode()がインデックスを保持するバグ (GH 40487)SeriesにNoneとNaTが含まれ、要素が 50 を超える場合にto_datetime()がValueErrorを発生させるバグ (GH 39882)タイムゾーン対応の datetime オブジェクトを含む object-dtype 値を持つ
Series.unstack()とDataFrame.unstack()が誤ってTypeErrorを発生させるバグ (GH 41875)DataFrameがvalue_varsとして使用される重複列を持つ場合に、DataFrame.melt()がInvalidIndexErrorを発生させるバグ (GH 41951)
スパース#
数字の
Indexで0を含まない列を持つ場合にDataFrame.sparse.to_coo()がKeyErrorを発生させるバグ (GH 18414)copy=Falseを指定したSparseArray.astype()で、整数 dtype から浮動小数点 dtype に変換するときに誤った結果が生成されるバグ (GH 34456)SparseArray.max()とSparseArray.min()が常に空の結果を返すバグ (GH 40921)
ExtensionArray#
otherがExtensionDtypeを持つ Series の場合にDataFrame.where()で発生するバグ (GH 38729)基礎となるデータが
ExtensionArrayの場合に、Series.idxmax()、Series.idxmin()、Series.argmax()、およびSeries.argmin()が失敗するバグを修正 (GH 32749、GH 33719、GH 36566)PandasExtensionDtypeのサブクラスの一部のプロパティが不適切にキャッシュされるバグを修正 (GH 40329)ExtensionDtypeを持つ DataFrame をマスクするとValueErrorが発生するDataFrame.mask()のバグ (GH 40941)
Styler#
Stylerのバグで、メソッドのsubset引数が一部の有効な MultiIndex スライスでエラーを発生させた (GH 33562)Stylerがレンダリングする HTML 出力が、w3 の適切なコード標準をサポートするために若干変更されました (GH 39626)Stylerのバグで、レンダリングされた HTML で特定のヘッダーセルに列クラス識別子がない問題がありました (GH 39716)Styler.background_gradient()のバグで、テキストの色が正しく決定されない問題がありました (GH 39888)Styler.set_table_styles()のバグで、table_styles引数の CSS セレクタ内の複数の要素が正しく追加されない問題がありました (GH 34061)Stylerのバグで、Jupyter からコピーすると左上のセルが欠落し、ヘッダーがずれる問題がありました (GH 12147)Styler.whereのバグで、kwargsが適用可能な呼び出し可能オブジェクトに渡されない問題がありました (GH 40845)Stylerのバグで、複数回レンダリングすると CSS が重複する問題がありました (GH 39395、GH 40334)
その他#
inspect.getmembers(Series)がAbstractMethodErrorを発生させなくなりました (GH 38782)数値 dtype と
other=Noneを指定したSeries.where()がnanにキャストされないバグ (GH 39761)assert_series_equal()、assert_frame_equal()、assert_index_equal()、およびassert_extension_array_equal()が、属性に認識されない NA タイプがある場合に誤ってエラーを発生させるバグ (GH 39461)exact=Trueを指定したassert_index_equal()が、Int64IndexおよびRangeIndexカテゴリを持つCategoricalIndexインスタンスを比較するときにエラーを発生させないバグ (GH 41263)np.datetime64("NaT")またはnp.timedelta64("NaT")を含む object-dtype のDataFrame.equals()、Series.equals()、およびIndex.equals()のバグ (GH 39650)show_versions()のバグで、コンソール JSON 出力が適切な JSON ではなかった (GH 39701)入力オブジェクトの型が
DataFrameの場合に、pandas.util.hash_pandas_object()がhash_key、encoding、およびcategorizeを認識しないバグ (GH 41404)
貢献者#
今回のリリースには合計 251 名がパッチを貢献しました。名前に「+」が付いている方は初めてパッチを貢献した方です。
Abhishek R +
Ada Draginda
Adam J. Stewart
Adam Turner +
Aidan Feldman +
Ajitesh Singh +
Akshat Jain +
アルバート・ビラノバ・デル・モラル
Alexandre Prince-Levasseur +
Andrew Hawyrluk +
Andrew Wieteska
AnglinaBhambra +
Ankush Dua +
Anna Daglis
Ashlan Parker +
Ashwani +
Avinash Pancham
Ayushman Kumar +
BeanNan
Benoît Vinot
Bharat Raghunathan
Bijay Regmi +
Bobin Mathew +
Bogdan Pilyavets +
Brian Hulette +
Brian Sun +
Brock +
Bryan Cutler
Caleb +
Calvin Ho +
Chathura Widanage +
Chinmay Rane +
Chris Lynch
Chris Withers
Christos Petropoulos
Corentin Girard +
DaPy15 +
Damodara Puddu +
Daniel Hrisca
ダニエル・サクストン
DanielFEvans
Dare Adewumi +
Dave Willmer
David Schlachter +
David-dmh +
Deepang Raval +
Doris Lee +
Dr. Jan-Philip Gehrcke +
DriesS +
Dylan Percy
Erfan Nariman
Eric Leung
EricLeer +
Eve
ファンチェン・リー
Felix Divo
Florian Jetter
Fred Reiss
GFJ138 +
Gaurav Sheni +
Geoffrey B. Eisenbarth +
Gesa Stupperich +
Griffin Ansel +
Gustavo C. Maciel +
Heidi +
Henry +
Hung-Yi Wu +
Ian Ozsvald +
アーブ・ラスティッグ
Isaac Chung +
アイザック・ヴィルシュプ
JHM Darbyshire (MBP) +
JHM Darbyshire (iMac) +
Jack Liu +
James Lamb +
Jeet Parekh
ジェフ・リーバック
Jiezheng2018 +
Jody Klymak
Johan Kåhrström +
John McGuigan
Joris Van den Bossche
Jose
JoseNavy
Josh Dimarsky
Josh Friedlander
Joshua Klein +
Julia Signell
Julian Schnitzler +
Kaiqi Dong
Kasim Panjri +
Katie Smith +
Kelly +
Kenil +
Keppler, Kyle +
ケビン・シェパード
Khor Chean Wei +
Kiley Hewitt +
Larry Wong +
Lightyears +
Lucas Holtz +
Lucas Rodés-Guirao
Lucky Sivagurunathan +
Luis Pinto
Maciej Kos +
Marc Garcia
Marco Edward Gorelli +
マルコ・ゴレリ
MarcoGorelli +
Mark Graham
Martin Dengler +
Martin Grigorov +
Marty Rudolf +
Matt Roeschke
Matthew Roeschke
Matthew Zeitlin
Max Bolingbroke
マキシム・イワノフ
Maxim Kupfer +
Mayur +
MeeseeksMachine
Micael Jarniac
Michael Hsieh +
Michel de Ruiter +
Mike Roberts +
Miroslav Šedivý
Mohammad Jafar Mashhadi
Morisa Manzella +
モルタダ・メヒヤル
Muktan +
Naveen Agrawal +
Noah
Nofar Mishraki +
Oleh Kozynets
Olga Matoula +
Oli +
Omar Afifi
Omer Ozarslan +
Owen Lamont +
Ozan Öğreden +
Pandas Development Team
Paolo Lammens
Parfait Gasana +
Patrick Hoefler
Paul McCarthy +
Paulo S. Costa +
Pav A
Peter
Pradyumna Rahul +
Punitvara +
QP Hou +
Rahul Chauhan
Rahul Sathanapalli
Richard Shadrach
Robert Bradshaw
Robin to Roxel
Rohit Gupta
Sam Purkis +
Samuel GIFFARD +
Sean M. Law +
Shahar Naveh +
ShaharNaveh +
Shiv Gupta +
Shrey Dixit +
Shudong Yang +
Simon Boehm +
Simon Hawkins
Sioned Baker +
Stefan Mejlgaard +
Steven Pitman +
Steven Schaerer +
Stéphane Guillou +
TLouf +
Tegar D Pratama +
テルジ・ピーターセン
Theodoros Nikolaou +
Thomas Dickson
Thomas Li
Thomas Smith
Thomas Yu +
ThomasBlauthQC +
Tim Hoffmann
Tom Augspurger
トルステン・ヴェルトワイン
Tyler Reddy
UrielMaD
Uwe L. Korn
Venaturum +
VirosaLi
Vladimir Podolskiy
Vyom Pathak +
WANG Aiyong
Waltteri Koskinen +
Wenjun Si +
ウィリアム・エイド
Yeshwanth N +
ユアンハオ・ゲン
Zito Relova +
aflah02 +
arredond +
attack68
cdknox +
chinggg +
fathomer +
ftrihardjo +
github-actions[bot] +
gunjan-solanki +
guru kiran
hasan-yaman
i-aki-y +
jbrockmendel
jmholzer +
jordi-crespo +
jotasi +
jreback
juliansmidek +
kylekeppler
lrepiton +
lucasrodes
maroth96 +
mikeronayne +
mlondschien
moink +
morrme
mschmookler +
mzeitlin11
na2 +
nofarmishraki +
パルテフ
パトリック
ptype
realead
rhshadrach
rlukevie +
rosagold +
saucoide +
sdementen +
shawnbrown
sstiijn +
stphnlyd +
sukriti1 +
taytzehao
theOehrly +
theodorju +
thordisstella +
tonyyyyip +
tsinggggg +
tushushu +
vangorade +
vladu +
wertha +