1.4.0の新機能 (2022年1月22日)#
これらはpandas 1.4.0での変更点です。他のバージョンのpandasを含む完全な変更ログについては、リリースノートを参照してください。
機能強化#
警告メッセージの改善#
以前は、警告メッセージがpandasライブラリ内の行を指す場合がありました。スクリプトsetting_with_copy_warning.pyを実行すると、
import pandas as pd
df = pd.DataFrame({'a': [1, 2, 3]})
df[:2].loc[:, 'a'] = 5
pandas 1.3では
.../site-packages/pandas/core/indexing.py:1951: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
これにより、警告がどこで生成されているかを特定するのが困難でした。現在、pandasはコールスタックを検査し、警告を引き起こしたpandasライブラリ外の最初の行を報告します。上記のスクリプトの出力は次のようになります。
setting_with_copy_warning.py:4: SettingWithCopyWarning:
A value is trying to be set on a copy of a slice from a DataFrame.
Indexが任意のExtensionArrayを保持できるようになりました#
これまで、カスタムのExtensionArrayをpd.Indexに渡すと、配列がobject dtypeにキャストされていました。現在、Indexは任意のExtensionArrayを直接保持できるようになりました (GH 43930)。
以前の動作:
In [1]: arr = pd.array([1, 2, pd.NA])
In [2]: idx = pd.Index(arr)
以前の動作では、idxはオブジェクトdtypeでした。
以前の動作:
In [1]: idx
Out[1]: Index([1, 2, <NA>], dtype='object')
新しい動作では、元のdtypeを保持します。
新しい動作:
In [3]: idx
Out[3]: Index([1, 2, <NA>], dtype='Int64')
これにはSparseArrayが1つの例外で、pandas 2.0までは引き続きnumpy dtypeにキャストされます。その時点で、他のExtensionArrayと同様にdtypeを保持します。
Styler#
Stylerは1.4.0でさらに開発されました。以下の一般的な機能強化が行われています。
インデックスのスタイル設定と書式設定が、
Styler.apply_index()、Styler.applymap_index()、およびStyler.format_index()で追加されました。これらは、データ値のスタイル設定と書式設定に既に使用されているメソッドのシグネチャをミラーリングし、HTML、LaTeX、およびExcel形式の両方で機能します (GH 41893、GH 43101、GH 41993、GH 41995)新しいメソッド
Styler.hide()は、Styler.hide_index()とStyler.hide_columns()を非推奨にします (GH 43758)キーワード引数
levelとnamesがStyler.hide()に追加されました (そして暗黙的に非推奨のメソッドStyler.hide_index()とStyler.hide_columns()にも)。これにより、MultiIndexとIndex名の可視性をさらに制御できます (GH 25475、GH 43404、GH 43346)
Styler.export()およびStyler.use()は、v1.2.0およびv1.3.0で追加されたすべての機能に対応するように更新されました (GH 40675)
pd.options.stylerカテゴリのグローバルオプションが拡張され、書式設定、エンコーディング、HTMLおよびLaTeXレンダリングに対応するデフォルトのStylerプロパティを設定できるようになりました。以前はStylerがdisplay.html.use_mathjaxに依存していましたが、これはstyler.html.mathjaxに置き換えられました (GH 41395)特定のキーワード引数(例:
caption)の検証 (GH 43368)以下に記録されている様々なバグ修正
さらに、HTML固有のレンダリングに特化した機能強化もいくつかあります。
Styler.bar()は、アライメントと表示を制御するための追加引数を導入しました (GH 26070、GH 36419)。また、入力引数widthとheightも検証します (GH 42511)
Styler.to_html()は、キーワード引数sparse_index、sparse_columns、bold_headers、caption、max_rows、max_columnsを導入しました (GH 41946、GH 43149、GH 42972)
Styler.to_html()は、パフォーマンス向上のため、非表示のテーブル要素のCSSStyleルールを省略します (GH 43619)カスタムCSSクラスを文字列置換なしで直接指定できるようになりました (GH 43686)
新しい
hyperlinks書式設定キーワード引数により、ハイパーリンクを自動的にレンダリングする機能 (GH 45058)
LaTeX固有の機能強化もいくつかあります。
Styler.to_latex()はキーワード引数environmentを導入し、これにより別のjinja2テンプレートを介して特定の「longtable」エントリも許可されます (GH 41866)multirowパッケージを含める必要なしに、LaTeXでの単純なスパース化が可能になりました (GH 43369)
キーワード引数により、
MultiIndex行のスパース化のためのclineサポートが追加されました (GH 45138)
pyarrowに基づく新しいCSVエンジンによるマルチスレッドCSV読み込み#
pandas.read_csv()は、引数としてengine="pyarrow"を受け入れるようになりました(pyarrow 1.0.1以上が必要)。これにより、pyarrowがインストールされているマルチコアマシンでCSV解析を高速化できます。詳細については、I/Oドキュメントを参照してください。(GH 23697、GH 43706)
ローリングおよび拡張ウィンドウのランク関数#
RollingとExpandingにrank関数が追加されました。新しい関数は、DataFrame.rank()のmethod、ascending、およびpctフラグをサポートします。method引数は、min、max、およびaverageのランキングメソッドをサポートします。例:
In [4]: s = pd.Series([1, 4, 2, 3, 5, 3])
In [5]: s.rolling(3).rank()
Out[5]:
0 NaN
1 NaN
2 2.0
3 2.0
4 3.0
5 1.5
dtype: float64
In [6]: s.rolling(3).rank(method="max")
Out[6]:
0 NaN
1 NaN
2 2.0
3 2.0
4 3.0
5 2.0
dtype: float64
Groupbyの位置インデックス#
各グループの末尾を基準とした位置範囲を指定できるようになりました。
DataFrameGroupBy.head()、SeriesGroupBy.head()、DataFrameGroupBy.tail()、およびSeriesGroupBy.tail()の負の引数が正しく機能し、それぞれ各グループの末尾と先頭を基準とした範囲を返すようになりました。以前は、負の引数は空のフレームを返していました。
In [7]: df = pd.DataFrame([["g", "g0"], ["g", "g1"], ["g", "g2"], ["g", "g3"],
...: ["h", "h0"], ["h", "h1"]], columns=["A", "B"])
...:
In [8]: df.groupby("A").head(-1)
Out[8]:
A B
0 g g0
1 g g1
2 g g2
4 h h0
DataFrameGroupBy.nth()とSeriesGroupBy.nth()は、スライスまたは整数のリストとスライスを受け入れるようになりました。
In [9]: df.groupby("A").nth(slice(1, -1))
Out[9]:
A B
1 g g1
2 g g2
In [10]: df.groupby("A").nth([slice(None, 1), slice(-1, None)])
Out[10]:
A B
0 g g0
3 g g3
4 h h0
5 h h1
DataFrameGroupBy.nth()およびSeriesGroupBy.nth()は、インデックス表記を受け入れるようになりました。
In [11]: df.groupby("A").nth[1, -1]
Out[11]:
A B
1 g g1
3 g g3
5 h h1
In [12]: df.groupby("A").nth[1:-1]
Out[12]:
A B
1 g g1
2 g g2
In [13]: df.groupby("A").nth[:1, -1:]
Out[13]:
A B
0 g g0
3 g g3
4 h h0
5 h h1
DataFrame.from_dictおよびDataFrame.to_dictに新しい'tight'オプションが追加されました#
MultiIndexのエントリと名前を保持する新しい'tight'辞書形式が、DataFrame.from_dict()およびDataFrame.to_dict()メソッドで利用可能になり、標準のjsonライブラリと組み合わせてDataFrameオブジェクトのタイトな表現を生成するために使用できます (GH 4889)。
In [14]: df = pd.DataFrame.from_records(
....: [[1, 3], [2, 4]],
....: index=pd.MultiIndex.from_tuples([("a", "b"), ("a", "c")],
....: names=["n1", "n2"]),
....: columns=pd.MultiIndex.from_tuples([("x", 1), ("y", 2)],
....: names=["z1", "z2"]),
....: )
....:
In [15]: df
Out[15]:
z1 x y
z2 1 2
n1 n2
a b 1 3
c 2 4
In [16]: df.to_dict(orient='tight')
Out[16]:
{'index': [('a', 'b'), ('a', 'c')],
'columns': [('x', 1), ('y', 2)],
'data': [[1, 3], [2, 4]],
'index_names': ['n1', 'n2'],
'column_names': ['z1', 'z2']}
その他の機能強化#
concat()は、すべてのオブジェクトでattrsが同じ場合はattrsを保持し、異なる場合はattrsを破棄します (GH 41828)DataFrameGroupBy操作でas_index=Falseの場合、グループ化される列のExtensionDtypedtypeが正しく保持されるようになりました (GH 41373)DataFrame.plot.hist()とDataFrame.plot.box()のby引数に値を割り当てるサポートを追加 (GH 15079)Series.sample()、DataFrame.sample()、DataFrameGroupBy.sample()、およびSeriesGroupBy.sample()は、random_stateへの入力としてnp.random.Generatorを受け入れるようになりました。replace=Falseの場合、ジェネレータはより高性能になります (GH 38100)Series.ewm()およびDataFrame.ewm()は、DataFrame全体に対してウィンドウ操作を実行する'table'オプションを持つmethod引数をサポートするようになりました。ウィンドウの概要でパフォーマンスと機能上の利点を確認してください (GH 42273)DataFrameGroupBy.cummin()、SeriesGroupBy.cummin()、DataFrameGroupBy.cummax()、およびSeriesGroupBy.cummax()は、引数skipnaをサポートするようになりました (GH 34047)read_table()が引数storage_optionsをサポートするようになりました (GH 39167)DataFrame.to_stata()およびStataWriter()は、キーワード専用引数value_labelsを受け入れ、非カテゴリカル列のラベルを保存できるようになりました (GH 38454)DataFrameGroupBy.value_counts()、DataFrameGroupBy.count()、およびfactorize()などのハッシュマップベースのアルゴリズムに依存するメソッドは、複素数の虚数成分を無視していました (GH 17927)Python 3.9で導入された
Series.str.removeprefix()とSeries.str.removesuffix()が追加され、文字列型のSeriesから接頭辞/接尾辞を削除できるようになりました (GH 36944)DataFrame.to_csv()、DataFrame.to_html()、DataFrame.to_excel()、DataFrame.to_feather()、DataFrame.to_parquet()、DataFrame.to_stata()、DataFrame.to_json()、DataFrame.to_pickle()、およびDataFrame.to_xml()で、存在しない親ディレクトリにファイルを書き込もうとした場合、欠落している親ディレクトリが明示的に言及されるようになりました。Seriesの対応するメソッドでも同様です (GH 24306).locおよび.ilocによるインデックス付けがEllipsisをサポートするようになりました (GH 37750)IntegerArray.all()、IntegerArray.any()、FloatingArray.any()、およびFloatingArray.all()はクリーネ論理を使用します (GH 41967)DataFrame.to_stata()、StataWriter、StataWriter117、およびStataWriterUTF8で、NULL許容ブール型および整数型がサポートされるようになりました (GH 40855)DataFrame.__pos__()とDataFrame.__neg__()はExtensionDtypedtypeを保持するようになりました (GH 43883)オプションの依存関係をインポートできなかったときに発生するエラーに、調査を容易にするために元の例外が含まれるようになりました (GH 43882)
ExponentialMovingWindow.sum()が追加されました (GH 13297)Series.str.split()は、パターンが正規表現であるかどうかを明示的に指定するregex引数をサポートするようになりました。デフォルトはNoneです (GH 43563、GH 32835、GH 25549)DataFrame.dropna()は、配列のようなものとともにsubsetとして単一のラベルを受け入れるようになりました (GH 41021)DataFrameGroupBy.value_counts()が追加されました (GH 43564)read_csv()は、engine="python"の場合にon_bad_linesでcallable関数を受け入れ、不正な行のカスタム処理ができるようになりました (GH 5686)ExcelWriterの引数if_sheet_exists="overlay"オプションが追加されました (GH 40231)read_excel()は、文字列の列を数値に解析する際に小数点を指定できるようにするdecimal引数を受け入れるようになりました (GH 14403)DataFrameGroupBy.mean()、SeriesGroupBy.mean()、DataFrameGroupBy.std()、SeriesGroupBy.std()、DataFrameGroupBy.var()、SeriesGroupBy.var()、DataFrameGroupBy.sum()、およびSeriesGroupBy.sum()は、engineキーワードでNumba実行をサポートするようになりました (GH 43731、GH 44862、GH 44939)Timestamp.isoformat()は、基本のdatetimeクラスのtimespec引数を処理するようになりました (GH 26131)NaT.to_numpy()のdtype引数が尊重され、np.timedelta64を返すことができるようになりました (GH 44460)新しいオプション
display.max_dir_itemsは、Dataframe.__dir__()に追加され、タブ補完で提案される列の数をカスタマイズします (GH 37996)USFederalHolidayCalendarに「Juneteenth National Independence Day」が追加されました (GH 44574)Rolling.var()、Expanding.var()、Rolling.std()、およびExpanding.std()は、engineキーワードでNumba実行をサポートするようになりました (GH 44461)DataFrame.info()との互換性のために、Series.info()が追加されました (GH 5167)IntervalArray.min()とIntervalArray.max()が実装され、その結果minとmaxがIntervalIndex、Series、およびDataFrameでIntervalDtypeとともに機能するようになりました (GH 44746)UInt64Index.map()は、可能な限りdtypeを保持するようになりました (GH 44609)read_json()は、符号なし長整数を解析できるようになりました (GH 26068)DataFrame.take()は、インデクサーにスカラーが渡された場合にTypeErrorを発生させるようになりました (GH 42875)is_list_like()は、.ndim == 0でない限り、ダック配列をリスト状として識別するようになりました (GH 35131)DataFrameをDataFrame.to_json()でorient='table'を使用してエクスポートする場合、ExtensionDtypeとExtensionArrayがシリアル化/デシリアル化されるようになりました (GH 20612、GH 44705)DataFrame.to_pickle()/read_pickle()および関連する関数にZstandard圧縮のサポートを追加 (GH 43925)DataFrame.to_sql()は、書き込まれた行数をintで返すようになりました (GH 23998)
注目すべきバグ修正#
これらは、注目すべき動作変更をもたらす可能性のあるバグ修正です。
一貫性のない日付文字列解析#
to_datetime()のdayfirstオプションは厳密ではなく、予期せぬ挙動につながることがありました。
In [17]: pd.to_datetime(["31-12-2021"], dayfirst=False)
Out[17]: DatetimeIndex(['2021-12-31'], dtype='datetime64[ns]', freq=None)
区切り記号付きの日付文字列(例:31-12-2012)が指定されたdayfirst値に従って解析できない場合、警告が発行されるようになりました。
空またはすべてNAの列があるconcatでのdtypeの無視を停止#
注
この挙動変更はpandas 1.4.3で元に戻されました。
concat()を使用して2つ以上のDataFrameオブジェクトを連結する場合、いずれかのDataFrameが空であるか、すべてのNA値を持っていた場合、連結されたdtypeを見つける際にそのdtypeが時々無視されていました。これらは一貫して無視されなくなりました (GH 43507)。
In [3]: df1 = pd.DataFrame({"bar": [pd.Timestamp("2013-01-01")]}, index=range(1))
In [4]: df2 = pd.DataFrame({"bar": np.nan}, index=range(1, 2))
In [5]: res = pd.concat([df1, df2])
以前は、df2のfloat-dtypeは無視され、結果のdtypeはdatetime64[ns]になりました。その結果、np.nanはNaTにキャストされました。
以前の動作:
In [6]: res
Out[6]:
bar
0 2013-01-01
1 NaT
現在、浮動小数点型は尊重されています。これらのDataFrameの共通のdtypeはオブジェクトであるため、np.nanは保持されます。
新しい動作:
In [6]: res
Out[6]:
bar
0 2013-01-01 00:00:00
1 NaN
value_countsとmodeでNull値がNaN値に強制されなくなりました#
Series.value_counts()とSeries.mode()は、np.object_-dtypeの場合、None、NaT、およびその他のnull値をNaN値に強制しなくなりました。この動作は、unique、isinなどと一貫しています (GH 42688)。
In [18]: s = pd.Series([True, None, pd.NaT, None, pd.NaT, None])
In [19]: res = s.value_counts(dropna=False)
以前は、すべてのnull値がNaN値に置き換えられていました。
以前の動作:
In [3]: res
Out[3]:
NaN 5
True 1
dtype: int64
現在、null値は変更されません。
新しい動作:
In [20]: res
Out[20]:
None 3
NaT 2
True 1
Name: count, dtype: int64
read_csvのmangle_dupe_colsは、ターゲット名と競合する一意の列名を変更しなくなりました#
read_csv()は、重複する列のターゲット名と競合する一意の列ラベルの名前を変更しなくなりました。既に存在する列はスキップされ、次の利用可能なインデックスがターゲット列名に使用されます (GH 14704)。
In [21]: import io
In [22]: data = "a,a,a.1\n1,2,3"
In [23]: res = pd.read_csv(io.StringIO(data))
以前は、2番目の列はa.1と呼ばれ、3番目の列もa.1.1に名前が変更されました。
以前の動作:
In [3]: res
Out[3]:
a a.1 a.1.1
0 1 2 3
現在、名前変更は、2番目の列の名前を変更するときにa.1が既に存在するかどうかを確認し、このインデックスをスキップします。2番目の列は代わりにa.2に名前が変更されます。
新しい動作:
In [24]: res
Out[24]:
a a.2 a.1
0 1 2 3
unstackとpivot_tableがint32制限を超える結果に対してValueErrorを発生させなくなりました#
以前は、DataFrame.pivot_table()とDataFrame.unstack()は、操作によって2**31 - 1を超える要素を持つ結果が生成される可能性がある場合にValueErrorを発生させていました。この操作は、代わりにerrors.PerformanceWarningを発生させるようになりました (GH 26314)。
以前の動作:
In [3]: df = DataFrame({"ind1": np.arange(2 ** 16), "ind2": np.arange(2 ** 16), "count": 0})
In [4]: df.pivot_table(index="ind1", columns="ind2", values="count", aggfunc="count")
ValueError: Unstacked DataFrame is too big, causing int32 overflow
新しい動作:
In [4]: df.pivot_table(index="ind1", columns="ind2", values="count", aggfunc="count")
PerformanceWarning: The following operation may generate 4294967296 cells in the resulting pandas object.
groupby.applyの一貫した変換検出#
DataFrameGroupBy.apply()とSeriesGroupBy.apply()は柔軟に設計されており、ユーザーは集計、変換、フィルタリング、およびこれらのカテゴリに分類されない可能性のあるユーザー定義関数での使用が可能です。その一環として、applyは操作が変換であると検出を試み、その場合、結果は入力と同じインデックスを持つことになります。操作が変換であるかを判断するために、pandasは入力のインデックスと結果のインデックスを比較し、それが変更されたかどうかを判断します。以前のpandas 1.3では、異なるコードパスが「変更された」の異なる定義を使用していました。一部はPythonのisを使用し、他は等価性のみをテストしていました。
この不一致は解消され、pandasは現在等価性までテストしています。
In [25]: def func(x):
....: return x.copy()
....:
In [26]: df = pd.DataFrame({'a': [1, 2], 'b': [3, 4], 'c': [5, 6]})
In [27]: df
Out[27]:
a b c
0 1 3 5
1 2 4 6
以前の動作:
In [3]: df.groupby(['a']).apply(func)
Out[3]:
a b c
a
1 0 1 3 5
2 1 2 4 6
In [4]: df.set_index(['a', 'b']).groupby(['a']).apply(func)
Out[4]:
c
a b
1 3 5
2 4 6
上記の例では、最初のケースではpandasがisを使用するコードパスであり、funcが変換ではないと判断されますが、2番目のケースでは等価性までテストされ、funcが変換であると判断されます。最初のケースでは、結果のインデックスは入力と同じではありません。
新しい動作:
In [5]: df.groupby(['a']).apply(func)
Out[5]:
a b c
0 1 3 5
1 2 4 6
In [6]: df.set_index(['a', 'b']).groupby(['a']).apply(func)
Out[6]:
c
a b
1 3 5
2 4 6
現在、両方のケースでfuncが変換であると判断されます。どちらのケースでも、結果は入力と同じインデックスを持ちます。
下位互換性のない API の変更#
Python の最小バージョンが引き上げられました#
pandas 1.4.0はPython 3.8以降をサポートしています。
依存関係の最小バージョン引き上げ#
一部の依存関係の最小サポートバージョンが更新されました。インストールされている場合、以下のバージョンが必要になります。
パッケージ |
最小バージョン |
必須 |
変更済み |
|---|---|---|---|
numpy |
1.18.5 |
X |
X |
pytz |
2020.1 |
X |
X |
python-dateutil |
2.8.1 |
X |
X |
bottleneck |
1.3.1 |
X |
|
numexpr |
2.7.1 |
X |
|
pytest (開発) |
6.0 |
||
mypy (開発) |
0.930 |
X |
オプションのライブラリについては、一般的に最新バージョンを使用することが推奨されます。以下の表は、pandas の開発全体で現在テストされているライブラリごとの最低バージョンを示しています。最低テストバージョンより古いオプションのライブラリは動作する可能性がありますが、サポートされているとはみなされません。
パッケージ |
最小バージョン |
変更済み |
|---|---|---|
beautifulsoup4 |
4.8.2 |
X |
fastparquet |
0.4.0 |
|
fsspec |
0.7.4 |
|
gcsfs |
0.6.0 |
|
lxml |
4.5.0 |
X |
matplotlib |
3.3.2 |
X |
numba |
0.50.1 |
X |
openpyxl |
3.0.3 |
X |
pandas-gbq |
0.14.0 |
X |
pyarrow |
1.0.1 |
X |
pymysql |
0.10.1 |
X |
pytables |
3.6.1 |
X |
s3fs |
0.4.0 |
|
scipy |
1.4.1 |
X |
sqlalchemy |
1.4.0 |
X |
表計算 |
0.8.7 |
|
xarray |
0.15.1 |
X |
xlrd |
2.0.1 |
X |
xlsxwriter |
1.2.2 |
X |
xlwt |
1.3.0 |
詳細については、依存関係 および オプションの依存関係 を参照してください。
その他の API の変更#
Index.get_indexer_for()は、キーワード引数(target以外)を受け入れなくなりました。以前は、インデックスが一意でない場合、これらは黙って無視されていました (GH 42310)DataFrame.to_string()のmin_rows引数の位置が、docstringの変更により変更されました (GH 44304)DataFrameまたはSeriesに対する削減操作において、skipnaにNoneが渡された場合にValueErrorが発生するようになりました (GH 44178)read_csv()とread_html()は、ヘッダー行の1つがUnnamed:列のみで構成されている場合にエラーを発生させなくなりました (GH 13054)USFederalHolidayCalendarに含まれるいくつかの祝日のname属性が、公式の連邦祝日名と一致するように変更されました。「New Year’s Day」に所有格のアポストロフィが追加されました。
「大統領の日」(Presidents Day)が「ワシントン誕生日」(Washington’s Birthday)になりました。
「マーティン・ルーサー・キング・ジュニア・デー」が「マーティン・ルーサー・キング・ジュニアの誕生日」になりました。
「7月4日」が「独立記念日」になりました。
「感謝祭」が「感謝祭の日」になりました。
「クリスマス」が「クリスマスデー」になりました。
「ジューンティーンス国立独立記念日」が追加されました。
非推奨#
Int64Index, UInt64Index & Float64Indexが非推奨になりました#
Int64Index、UInt64Index、およびFloat64Indexは、基本のIndexクラスを推奨して非推奨となり、Pandas 2.0で削除されます (GH 43028)。
数値インデックスを作成するには、データ型を指定して基本のIndexクラスを使用できます(これは古いpandasリリースでも機能します)。
# replace
pd.Int64Index([1, 2, 3])
# with
pd.Index([1, 2, 3], dtype="int64")
インデックスオブジェクトのデータ型を確認するには、isinstanceチェックをdtypeのチェックに置き換えることができます。
# replace
isinstance(idx, pd.Int64Index)
# with
idx.dtype == "int64"
現在、後方互換性を維持するため、Indexへの呼び出しは、数値データが与えられた場合にInt64Index、UInt64Index、およびFloat64Indexを返し続けますが、将来はIndexが返されるようになります。
現在の動作:
In [1]: pd.Index([1, 2, 3], dtype="int32")
Out [1]: Int64Index([1, 2, 3], dtype='int64')
In [1]: pd.Index([1, 2, 3], dtype="uint64")
Out [1]: UInt64Index([1, 2, 3], dtype='uint64')
将来の動作:
In [3]: pd.Index([1, 2, 3], dtype="int32")
Out [3]: Index([1, 2, 3], dtype='int32')
In [4]: pd.Index([1, 2, 3], dtype="uint64")
Out [4]: Index([1, 2, 3], dtype='uint64')
DataFrame.appendとSeries.appendが非推奨になりました#
DataFrame.append()およびSeries.append()は非推奨となり、将来のバージョンで削除されます。代わりにpandas.concat()を使用してください (GH 35407)。
非推奨の構文
In [1]: pd.Series([1, 2]).append(pd.Series([3, 4])
Out [1]:
<stdin>:1: FutureWarning: The series.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
0 1
1 2
0 3
1 4
dtype: int64
In [2]: df1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
In [3]: df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
In [4]: df1.append(df2)
Out [4]:
<stdin>:1: FutureWarning: The series.append method is deprecated and will be removed from pandas in a future version. Use pandas.concat instead.
A B
0 1 2
1 3 4
0 5 6
1 7 8
推奨構文
In [28]: pd.concat([pd.Series([1, 2]), pd.Series([3, 4])])
Out[28]:
0 1
1 2
0 3
1 4
dtype: int64
In [29]: df1 = pd.DataFrame([[1, 2], [3, 4]], columns=list('AB'))
In [30]: df2 = pd.DataFrame([[5, 6], [7, 8]], columns=list('AB'))
In [31]: pd.concat([df1, df2])
Out[31]:
A B
0 1 2
1 3 4
0 5 6
1 7 8
その他の非推奨化#
Index.is_type_compatible()が非推奨になりました (GH 42113)Index.get_loc()のmethod引数が非推奨になりました。代わりにindex.get_indexer([label], method=...)を使用してください (GH 42269)Series.__setitem__()で、インデックスがキーを含まないFloat64Index、キーを含むエントリがないIntervalIndex、またはキーを含まない先頭のFloat64Indexレベルを持つMultiIndexである場合に、整数キーを位置として扱うことが非推奨になりました (GH 33469)Timestampコンストラクタにタイムゾーンとともに渡されたnumpy.datetime64オブジェクトをUTC時刻として扱うことが非推奨になりました。将来のバージョンでは、これらは壁時計時刻として扱われます。以前の動作を保持するには、Timestamp(dt64).tz_localize("UTC").tz_convert(tz)を使用してください (GH 24559)MultiIndexのレベルでラベルのシーケンスを使用してインデックス付けする際に、不足しているラベルを無視することが非推奨になりました (GH 42351)dtypeを指定せずに空のSeriesを作成すると、DeprecationWarningではなく、より目立つFutureWarningが発行されるようになりました (GH 30017)Index.get_slice_bound()、Index.slice_indexer()、およびIndex.slice_locs()のkind引数が非推奨になりました。将来のバージョンでは、kindを渡すと例外が発生します (GH 42857)Rolling、Expanding、およびEWMの集計における不便な列の削除が非推奨になりました (GH 42738)一意でない
IndexでIndex.reindex()を使用することが非推奨になりました (GH 42568)Styler.render()が非推奨となり、代わりにStyler.to_html()が推奨されます (GH 42140)Styler.hide_index()とStyler.hide_columns()が非推奨となり、代わりにStyler.hide()が推奨されます (GH 43758)DataFrame.ewm()のtimesに文字列の列ラベルを渡すことが非推奨になりました (GH 43265)DataFrame.between_time()のinclude_startおよびinclude_end引数が非推奨になりました。将来のバージョンでは、include_startまたはinclude_endを渡すと例外が発生します (GH 40245)read_csv()、read_table()、およびread_excel()のsqueeze引数が非推奨になりました。ユーザーは代わりに.squeeze("columns")でDataFrameを絞り込むべきです (GH 43242)SparseArrayコンストラクタのindex引数が非推奨になりました (GH 23089)date_range()とbdate_range()におけるclosed引数が非推奨となり、代わりにinclusive引数を使用してください。将来のバージョンでは、closedを渡すとエラーが発生します (GH 40245)Rolling.validate(),Expanding.validate(), およびExponentialMovingWindow.validate()は非推奨です (GH 43665)辞書とともに使用された場合、
Series.transformおよびDataFrame.transformでTypeErrorを発生させた列がサイレントにドロップされる動作は非推奨です (GH 43740)リストとともに使用された場合、
Series.aggregate(),DataFrame.aggregate(),Series.groupby.aggregate(), およびDataFrame.groupby.aggregate()でTypeError,DataError, および一部のValueErrorを発生させた列がサイレントにドロップされる動作は非推奨です (GH 43740)タイムゾーンが一致しない場合に、タイムゾーンを考慮した値がタイムゾーンを考慮した
SeriesまたはDataFrame列に設定される際のキャスト動作は非推奨です。以前は、これはオブジェクトdtypeにキャストされていました。将来のバージョンでは、挿入される値はシリーズまたは列の既存のタイムゾーンに変換されます (GH 37605)タイムゾーンが一致しない項目を
DatetimeIndex.insert(),DatetimeIndex.putmask(),DatetimeIndex.where()DatetimeIndex.fillna(),Series.mask(),Series.where(),Series.fillna(),Series.shift(),Series.replace(),Series.reindex()(およびDataFrame列の類似のもの) に渡す際のキャスト動作は非推奨です。以前は、これはオブジェクトdtypeにキャストされていました。将来のバージョンでは、これらの項目はインデックスまたはシリーズのタイムゾーンにキャストされます (GH 37605, GH 44940)read_csv()およびread_table()におけるprefixキーワード引数は非推奨です。将来のバージョンでは、この引数は削除されます (GH 43396)read_fwf()でfilepath_or_buffer以外の引数を位置引数として渡すことは非推奨です (GH 41485)read_xml()でpath_or_buffer以外の引数を位置引数として渡すことは非推奨です (GH 45133)DataFrame.mad()およびSeries.mad()でskipna=Noneを渡すことは非推奨です。代わりにskipna=Trueを渡してください (GH 44580)utc=Falseを指定して文字列 "now" をto_datetime()に渡す動作は非推奨です。将来のバージョンでは、これはTimestamp("now")と一致し、それはTimestamp.now()がローカル時間を返すのと一致します (GH 18705)DateOffset.apply()は非推奨です。代わりにoffset + otherを使用してください (GH 44522)Index.copy()のパラメータnamesは非推奨です (GH 44916)DataFrame.to_latex()に対して、引数のシグネチャが変更され、将来のバージョンでStyler.to_latex()の引数により近づく可能性があることを示す非推奨警告が表示されるようになりました (GH 44411)bool-dtype と数値-dtype のオブジェクト間の
concat()の動作は非推奨です。将来のバージョンでは、これらはブール値を数値に強制変換するのではなく、オブジェクト dtype にキャストされます (GH 39817)Categorical.replace()は非推奨です。代わりにSeries.replace()を使用してください (GH 44929)DataFrame.loc.__setitem__(),DataFrame.loc.__getitem__(),Series.loc.__setitem__(),Series.loc.__getitem__(),DataFrame.__getitem__(),Series.__getitem__()およびSeries.__setitem__()のインデクサーとしてsetまたはdictを渡すことは非推奨です (GH 42825)boolキーを使用した
Index.__getitem__()は非推奨です。以前の動作を得るにはindex.values[key]を使用してください (GH 44051)整数 dtype を持つ
DataFrame.where()で列ごとにダウンキャストする動作は非推奨です (GH 44597)DatetimeIndex.union_many()は非推奨です。代わりにDatetimeIndex.union()を使用してください (GH 44091)Groupby.pad()は非推奨です。代わりにGroupby.ffill()を使用してください (GH 33396)Groupby.backfill()は非推奨です。代わりにGroupby.bfill()を使用してください (GH 33396)Resample.pad()は非推奨です。代わりにResample.ffill()を使用してください (GH 33396)Resample.backfill()は非推奨です。代わりにResample.bfill()を使用してください (GH 33396)DataFrame.rank()におけるnumeric_only=Noneは非推奨です。将来のバージョンでは、numeric_onlyはTrueまたはFalse(デフォルト) のいずれかである必要があります (GH 45036)Timestamp.utcfromtimestamp()の動作は非推奨です。将来はタイムゾーンを考慮したUTCTimestampを返します (GH 22451)NaT.freq()は非推奨です (GH 45071)NaNを含むfloat-dtypeデータと、dtype引数を無視する整数dtypeを渡した場合のSeriesおよびDataFrameの構築動作は非推奨です。将来のバージョンでは、これはエラーを発生させます (GH 40110)name=Noneの場合にname引数を無視するSeries.to_frame()およびIndex.to_frame()の動作は非推奨です。現在、これは既存の名前を保持することを意味しますが、将来的に明示的にname=Noneを渡すと、結果のDataFrameの列の名前がNoneに設定されます (GH 44212)
パフォーマンス改善#
DataFrameGroupBy.sample()およびSeriesGroupBy.sample()のパフォーマンスが向上しました。特にweights引数が提供された場合に顕著です (GH 34483)非文字列配列を文字列配列に変換する際のパフォーマンスが向上しました (GH 34483)
ユーザー定義関数に対する
DataFrameGroupBy.transform()およびSeriesGroupBy.transform()のパフォーマンスが向上しました (GH 41598)DataFrameオブジェクトの構築におけるパフォーマンスが向上しました (GH 42631, GH 43142, GH 43147, GH 43307, GH 43144, GH 44826)fill_value引数が指定された場合のDataFrameGroupBy.shift()およびSeriesGroupBy.shift()のパフォーマンスが向上しました (GH 26615)欠損値のないデータに対する
method=pearsonのDataFrame.corr()のパフォーマンスが向上しました (GH 40956)一部の
DataFrameGroupBy.apply()およびSeriesGroupBy.apply()操作におけるパフォーマンスが向上しました (GH 42992, GH 43578)read_stata()のパフォーマンスが向上しました (GH 43059, GH 43227)read_sas()のパフォーマンスが向上しました (GH 43333)uintdtypes を持つto_datetime()のパフォーマンスが向上しました (GH 42606)infer_datetime_formatがTrueに設定されたto_datetime()のパフォーマンスが向上しました (GH 43901)Series.sparse.to_coo()のパフォーマンスが向上しました (GH 42880)UInt64Indexを使用したインデックス作成のパフォーマンスが向上しました (GH 43862)Float64Indexを使用したインデックス作成のパフォーマンスが向上しました (GH 43705)MultiIndex上のリストライクなインデクサーを使用したインデックス作成のパフォーマンスが向上しました (GH 43370)別の
MultiIndex上のMultiIndexインデクサーを使用したインデックス作成のパフォーマンスが向上しました (GH 43370)DataFrameGroupBy.quantile()およびSeriesGroupBy.quantile()のパフォーマンスが向上しました (GH 43469, GH 43725)DataFrameGroupBy.count()およびSeriesGroupBy.count()のパフォーマンスが向上しました (GH 43730, GH 43694)DataFrameGroupBy.any(),SeriesGroupBy.any(),DataFrameGroupBy.all(), およびSeriesGroupBy.all()のパフォーマンスが向上しました (GH 43675, GH 42841)DataFrameGroupBy.std()およびSeriesGroupBy.std()のパフォーマンスが向上しました (GH 43115, GH 43576)DataFrameGroupBy.cumsum()およびSeriesGroupBy.cumsum()のパフォーマンスが向上しました (GH 43309)SparseArray.min()およびSparseArray.max()は、密な配列に変換する必要がなくなりました (GH 43526)step=1のsliceを使用してSparseArrayにインデックスを作成する際に、密な配列に変換する必要がなくなりました (GH 43777)allow_fill=Falseを指定したSparseArray.take()のパフォーマンスが向上しました (GH 43654)engine="numba"を指定したRolling.mean(),Expanding.mean(),Rolling.sum(),Expanding.sum(),Rolling.max(),Expanding.max(),Rolling.min()およびExpanding.min()のパフォーマンスが向上しました (GH 43612, GH 44176, GH 45170)ファイルエンコーディングがUTF-8の場合に
memory_map=Trueを指定したpandas.read_csv()のパフォーマンスが向上しました (GH 43787)Index.sort_values()をオーバーライドするRangeIndex.sort_values()のパフォーマンスが向上しました (GH 43666)RangeIndex.insert()のパフォーマンスが向上しました (GH 43988)Index.insert()のパフォーマンスが向上しました (GH 43953)DatetimeIndex.tolist()のパフォーマンスが向上しました (GH 43823)DatetimeIndex.union()のパフォーマンスが向上しました (GH 42353)Series.nsmallest()のパフォーマンスが向上しました (GH 43696)DataFrame.insert()のパフォーマンスが向上しました (GH 42998)DataFrame.dropna()のパフォーマンスが向上しました (GH 43683)DataFrame.fillna()のパフォーマンスが向上しました (GH 43316)DataFrame.values()のパフォーマンスが向上しました (GH 43160)DataFrame.select_dtypes()のパフォーマンスが向上しました (GH 42611)DataFrameの削減におけるパフォーマンスが向上しました (GH 43185, GH 43243, GH 43311, GH 43609)Series.unstack()およびDataFrame.unstack()のパフォーマンスが向上しました (GH 43335, GH 43352, GH 42704, GH 43025)Series.to_frame()のパフォーマンスが向上しました (GH 43558)Series.mad()のパフォーマンスが向上しました (GH 43010)インデックス列が datetime であり、フォーマットされている場合の
to_csv()のパフォーマンスが向上しました (GH 39413)MultiIndexに多くの未使用レベルが含まれている場合のto_csv()のパフォーマンスが向上しました (GH 37484)index_colが数値列で設定された場合のread_csv()のパフォーマンスが向上しました (GH 44158)SparseArray.__getitem__()のパフォーマンスが向上しました (GH 23122)Pytorchテンソルなどの配列ライクなオブジェクトからDataFrameオブジェクトを構築する際のパフォーマンスが向上しました (GH 44616)
バグ修正#
カテゴリカル#
Categorical(またはCategoricalでバックアップされたSeriesまたはDataFrame) に dtype 非互換の値を設定するとTypeErrorではなくValueErrorが発生するバグを修正しました (GH 41919)dtype 非互換の値を渡すと
TypeErrorではなくKeyErrorが発生するCategorical.searchsorted()のバグを修正しました (GH 41919)datetime と
Timestampを dtypeobjectに対して int にキャストするCategorical.astype()のバグを修正しました (GH 44930)dtype 非互換の値を渡すと
TypeErrorではなくValueErrorが発生する、CategoricalDtypeを持つSeries.where()のバグを修正しました (GH 41919)dtype 非互換の値を渡すと
TypeErrorではなくValueErrorが発生するCategorical.fillna()のバグを修正しました (GH 41919)非カテゴリのタプルで埋めると
TypeErrorではなくValueErrorが発生する、タプルライクなカテゴリを持つCategorical.fillna()のバグを修正しました (GH 41919)
日付時刻ライク#
DataFrameコンストラクタが非datetimeライクな2Dオブジェクト配列を不必要にコピーするバグを修正しました (GH 39272)formatとpandas.NAを持つto_datetime()がValueErrorを発生させていたバグを修正しました (GH 42957)to_datetime()は、指定されたdayfirstオプションが尊重できない場合にMM/DD/YYYYとDD/MM/YYYYフォーマットをサイレントに交換していましたが、区切り記号付きの日付文字列 (例:31-12-2012) の場合に警告が発生するようになりました (GH 12585)start=endで、セットが片側で閉じている場合に、date_range()とbdate_range()が右境界を返さないバグを修正しました (GH 43394)DatetimeIndexまたはTimedeltaIndexとDatetimeArrayまたはTimedeltaArrayのインプレース加算および減算のバグを修正しました (GH 43904)タイムゾーンを考慮した
DatetimeIndexでnp.isnan,np.isfinite, またはnp.isinfを呼び出すと、誤ってTypeErrorが発生するバグを修正しました (GH 43917)タイムゾーンが混在する datetime ライクな文字列から
Seriesを構築する際に、datetime 値が誤って部分的に推論されるバグを修正しました (GH 40111)Tickオブジェクトとnp.timedelta64オブジェクトの加算が、Timedeltaを返す代わりに誤ってエラーを発生させるバグを修正しました (GH 44474)np.maximum.reduceおよびnp.minimum.reduceが、datetime64[ns]またはtimedelta64[ns]dtype を持つSeries,DataFrame, またはIndexに対して操作する際に、正しくTimestampおよびTimedeltaオブジェクトを返すようになりました (GH 43923)np.timedelta64オブジェクトをBusinessDayまたはCustomBusinessDayオブジェクトに加算すると誤ってエラーが発生するバグを修正しました (GH 44532)dtype='object'のIndexにnp.datetime64,np.timedelta64, またはtupleを負の loc で挿入するとNoneが追加され、既存の値が置き換えられるIndex.insert()のバグを修正しました (GH 44509)Timestamp.to_pydatetime()がfold属性を保持できないバグを修正しました (GH 45087)DatetimeTZDtypeを持つSeries.mode()が誤ってタイムゾーン非対応の値を返し、PeriodDtypeが誤ってエラーを発生させるバグを修正しました (GH 41927)reindex()が datetime ライクな dtype と互換性のない埋め込み値を使用した場合にエラーを発生させる (またはdatetime.dateを埋め込み値として使用した場合に非推奨警告を発生させない) というリグレッションを修正しました (GH 42921)DateOffsetとTimestampの加算で、offset.nanosecondsが結果に含まれないバグを修正しました (GH 43968, GH 36589)Timestamp.fromtimestamp()がtz引数をサポートしないバグを修正しました (GH 45083)インデックス dtype が一致しない
Seriesの辞書からDataFrameを構築する際に、渡された辞書の順序によってはエラーが発生するバグを修正しました (GH 44091)一部のDST遷移中の
Timestampハッシュ化におけるバグがセグメンテーション違反を引き起こしていたバグを修正しました (GH 33931 および GH 40817)
Timedelta#
タイムゾーン#
infer_datetime_format=Trueを指定したto_datetime()がゼロUTCオフセット (Z) を正しく解析できないバグを修正しました (GH 41047)CategoricalIndexを持つSeriesのSeries.dt.tz_convert()がインデックスをリセットするバグを修正しました (GH 43080)タイムゾーンが一致しない2つのタイムゾーンを考慮したオブジェクトを減算すると、
TimestampおよびDatetimeIndexが誤ってTypeErrorを発生させるバグを修正しました (GH 31793)
数値#
整数のリストまたはタプルを
Seriesで切り捨て除算すると誤ってエラーが発生するバグを修正しました (GH 44674)object列とmethod="first"を指定した場合にDataFrame.rank()がValueErrorを発生させるバグを修正しました (GH 41931)DataFrame.rank()が、欠損値と極値 (例:np.nanとnp.inf) を等しいものとして扱い、na_option="bottom"またはna_option="topを使用した場合に誤った結果を引き起こすバグを修正しました (GH 41931)オプション
compute.use_numexprがFalseに設定されている場合でもnumexprエンジンが使用され続けるバグを修正しました (GH 32556)_constructor()属性がサブクラス自体以外の呼び出し可能オブジェクトであるサブクラスとのDataFrame算術演算のバグを修正しました (GH 43201)RangeIndexを含む算術演算で、結果のnameが誤っていたバグを修正しました (GH 43962)オペランドが一致するNAまたは一致するタプル名を持つ場合に、
Seriesを含む算術演算で、結果が誤ったnameを持つ可能性があったバグを修正しました (GH 44459)IntegerDtypeまたはBooleanDtype配列とNAスカラの除算が誤ってエラーを発生させるバグを修正しました (GH 44685)FloatingDtypeを持つSeriesを timedelta ライクなスカラで乗算すると誤ってエラーが発生するバグを修正しました (GH 44772)
変換#
int64にキャストするには十分小さい正の整数と、int64に保持するには大きすぎる整数の両方を含むリストを渡した場合の
UInt64Indexコンストラクタのバグを修正しました (GH 42201)int64dtype の欠損値に0を返し、booldtype にFalseを返すSeriesコンストラクタのバグを修正しました (GH 43017, GH 43018)Seriesオブジェクトを含むPandasArrayからDataFrameを構築する際に、同等のnp.ndarrayとは異なる動作をするバグを修正しました (GH 43986)IntegerDtypeが文字列dtypeからの強制変換を許可しないバグを修正しました (GH 25472)arg:xr.DataArrayとunit="ns"が指定されたto_datetime()がTypeErrorを発生させるバグを修正しました (GH 44053)サブクラスが
_constructor_sliced()をオーバーロードしない場合にDataFrame.convert_dtypes()が正しい型を返さないバグを修正しました (GH 43201)DataFrame.astype()が元のDataFrameからattrsを伝播しないバグを修正しました (GH 44414)DataFrame.convert_dtypes()の結果がcolumns.namesを失うバグを修正しました (GH 41435)pyarrowデータから
IntegerArrayを構築する際に、dtypes の検証に失敗するバグを修正しました (GH 44891)Series.astype()がPeriodDtypeからdatetime64dtype への変換を許可せず、PeriodIndexの動作と矛盾するバグを修正しました (GH 45038)
文字列#
pyarrow がインストールされていない場合に、
string[pyarrow]dtype のチェックが誤ってImportErrorを発生させるバグを修正しました (GH 44276)
Interval#
where呼び出しが何も置き換えるべきでない場合に、IntervalDtypeを持つSeries.where()が誤ってエラーを発生させるバグを修正しました (GH 44181)
インデックス付け#
MultiIndexとlevelが提供されている場合のSeries.rename()のバグを修正しました (GH 43659)オブジェクトの
Indexの長さが1より大きいが、一意の値が1つしかない場合のDataFrame.truncate()およびSeries.truncate()のバグを修正しました (GH 42365)MultiIndexを持つSeries.loc()およびDataFrame.loc()で、レベルの1つもタプルであるタプルでインデックスを作成する際のバグを修正しました (GH 27591)最初のレベルに
np.nan値のみが含まれるMultiIndexを持つSeries.loc()のバグを修正しました (GH 42055)文字列を渡した場合の
DatetimeIndexを持つSeriesまたはDataFrameのインデックス作成で、戻り値の型がインデックスが単調であるかどうかに依存していたバグを修正しました (GH 24892)MultiIndexのインデックス作成におけるバグ。インデクサーが日時のような文字列を含むタプルである場合、スカラーレベルのドロップに失敗しました (GH 42476)DataFrame.sort_values()およびSeries.sort_values()で、昇順値を渡したときにValueErrorが発生しなかった、または誤って発生したバグ (GH 41634)pandas.DataFrame.pop()を使用して作成されたブールインデックスを使用してpandas.Seriesの値を更新する際のバグ (GH 42530)Index.get_indexer_non_unique()で、インデックスに複数のnp.nanが含まれている場合のバグ (GH 35392)DataFrame.query()で、バッククォートされた列名 (例: `Temp(°C)`) 内の度記号がDataFrameをクエリするための式で使用されたときに処理されなかったバグ (GH 42826)DataFrame.drop()で、KeyErrorが発生したときにエラーメッセージに欠落しているラベルがコンマで表示されなかったバグ (GH 42881)DataFrame.query()で、numexprパッケージがインストールされている場合にクエリ文字列内のメソッド呼び出しがエラーを引き起こしたバグ (GH 22435)DataFrame.nlargest()およびSeries.nlargest()で、ソートされた結果がnp.nanを含むインデックスをカウントしなかったバグ (GH 28984)非一意なオブジェクト型
Indexで NA スカラー (例:np.nan) を使用するインデックス作成のバグ (GH 43711)DataFrame.__setitem__()で、新しいデータ型と古いデータ型が一致する場合に、新しい配列を設定する代わりに既存の列の配列に誤って書き込んだバグ (GH 43406)整数型
Seriesに浮動小数点型値を設定する際に、その値がロスレスで整数に変換できる場合にインプレース設定に失敗したバグ (GH 44316)オブジェクト型
Series.__setitem__()で、一致するサイズとdtype='datetime64[ns]'またはdtype='timedelta64[ns]'の配列を設定すると、日時/期間が誤って整数に変換されたバグ (GH 43868)DataFrame.sort_index()で、インデックスがすでにソートされている場合にignore_index=Trueが尊重されなかったバグ (GH 43591)Index.get_indexer_non_unique()で、インデックスに複数のnp.datetime64("NaT")およびnp.timedelta64("NaT")が含まれている場合のバグ (GH 43869)IntervalDtypeを持つSeriesにスカラーInterval値を設定する際に、スカラーのサイドが浮動小数点数で、値のサイドが整数の場合のバグ (GH 44201)文字列でサポートされた
Categorical値 (datetime にパース可能) をDatetimeArrayまたはSeriesまたはDataFrameのDatetimeArrayでサポートされた列に設定する際に、これらの文字列のパースに失敗するバグ (GH 44236)int64以外の整数型Series.__setitem__()で、rangeオブジェクトで設定する際に不必要にint64にアップキャストされたバグ (GH 44261)ブールマスクインデクサーを持つ
Series.__setitem__()で、長さ 1 のリストのような値を設定すると、その値が誤ってブロードキャストされたバグ (GH 44265)Series.reset_index()で、dropとinplaceがTrueに設定されている場合にname引数が無視されなかったバグ (GH 44575)DataFrame.loc.__setitem__()およびDataFrame.iloc.__setitem__()で、混在するデータ型を持つ場合にインプレース操作に失敗することがあったバグ (GH 44345)DataFrame.loc.__getitem__()で、ブールキーで単一の列を選択するとKeyErrorが誤って発生したバグ (GH 44322)。DataFrame.iloc()で、単一のExtensionDtype列と 2D 値 (例:df.iloc[:] = df.values) を設定すると誤ってエラーが発生したバグ (GH 44514)DataFrame.iloc()で、単一のExtensionDtype列と配列のタプルをインデクサーとして使用して値を設定する際のバグ (GH 44703)locまたはilocを使用して、負のステップのスライスを持つ列のインデックス作成で、ExtensionDtype列が誤ってエラーを発生させたバグ (GH 44551)DataFrame.loc.__setitem__()で、インデクサーが完全にFalseの場合にデータ型が変更されたバグ (GH 37550)IntervalIndex.get_indexer_non_unique()が、非一意で非単調なインデックスに対して整数配列ではなくブールマスクを返したバグ (GH 44084)IntervalIndex.get_indexer_non_unique()が、NaN を含むdtype'object' のターゲットを正しく処理しなかったバグ (GH 44482)単一列の
np.matrixがDataFrameに追加されたときに 1 次元のnp.ndarrayに強制変換されなくなった回帰が修正されました (GH 42376)Series.__getitem__()で、整数リストを位置インデクサーとして扱い、単一のスカラー整数の場合の動作と矛盾するCategoricalIndex(整数) のバグ (GH 15470, GH 14865)Series.__setitem__()で、整数型Seriesに浮動小数点数または整数を設定する際に、精度を維持するために必要な場合にアップキャストに失敗したバグ (GH 45121)DataFrame.iloc.__setitem__()が軸引数を無視したバグ (GH 45032)
欠損値#
DataFrame.fillna()で、limitが設定されmethodがない場合にaxis='columns'またはaxis = 1が無視されたバグ (GH 40989, GH 17399)DataFrame.fillna()で、辞書のようなvalueと重複する列名を使用した場合に欠損値が置換されなかったバグ (GH 43476)値が辞書の
np.datetime64でdtype='timedelta64[ns]'(またはその逆) のDataFrameを構築する際に、エラーを発生させる代わりに誤ってキャストされたバグ (GH 44428)Series.interpolate()およびDataFrame.interpolate()で、inplace=Trueが設定されている場合に基となる配列にインプレースで書き込まなかったバグ (GH 44749)Index.fillna()で、NA 値が存在しdowncast引数が指定されている場合に、埋められていないIndexを誤って返したバグ。現在では代わりにNotImplementedErrorが発生します。downcast引数を渡さないでください (GH 44873)DataFrame.dropna()で、エントリがドロップされなかった場合でもIndexが変更されたバグ (GH 41965)オブジェクト型
Series.fillna()で、downcast="infer"を誤って無視したバグ (GH 44241)
MultiIndex#
MultiIndex.get_loc()で、最初のレベルがDatetimeIndexで文字列キーが渡された場合のバグ (GH 42465)MultiIndex.reindex()で、ExtensionDtypeレベルに対応するlevelを渡した場合のバグ (GH 42043)MultiIndex.get_loc()で、ネストされたタプルに対してKeyErrorではなくTypeErrorが発生したバグ (GH 42440)MultiIndex.union()で、誤ったsortorderが設定され、その後のスライスによるインデックス操作でエラーが発生したバグ (GH 44752)MultiIndex.putmask()で、他の値もMultiIndexであった場合のバグ (GH 43212)MultiIndex.dtypes()で、重複するレベル名が名前ごとに 1 つのデータ型しか返さなかったバグ (GH 45174)
I/O#
read_excel()で、.xlsx ファイルからグラフシートを読み取ろうとしたバグ (GH 41448)json_normalize()で、record_pathの長さが 1 より大きい場合にerrors=ignoreがmetaの欠損値を無視できなかったバグ (GH 41876)read_csv()で、マルチヘッダー入力と列名をタプルとして参照する引数を使用した場合のバグ (GH 42446)read_fwf()で、colspecsとnamesの長さの差がValueErrorを発生させなかったバグ (GH 40830)Series.to_json()およびDataFrame.to_json()で、プレーンな Python オブジェクトを JSON にシリアル化する際に一部の属性がスキップされたバグ (GH 42768, GH 33043)sqlalchemy の
RowオブジェクトからDataFrameを構築する際に列ヘッダーがドロップされた (GH 40682)read_csv()で、異なる長さのマルチヘッダー入力を読み取ると誤ってIndexErrorが発生したバグ (GH 43102)read_csv()で、engine="c"の場合にファイルをチャンクで読み取り、一部のチャンクブロックの列数がヘッダーより少ないとParserErrorが発生したバグ (GH 21211)read_csv()で、ファイルパス名またはファイルのようなオブジェクトを期待する場合の例外クラスがOSErrorからTypeErrorに変更されたバグ (GH 43366)read_csv()およびread_fwf()で、engine='python'の場合にnrowsが指定されていると最初のskiprows以外のすべてが無視されたバグ (GH 44021, GH 10261)read_csv()で、keep_date_col=Trueが設定されている場合に元の列がオブジェクト形式で保持されたバグ (GH 13378)read_json()で、非 NumPy データ型 (特にcategory) が正しく処理されなかったバグ (GH 21892, GH 33205)json_normalize()で、複数文字のsepパラメーターがすべてのキーに誤ってプレフィックスとして追加されたバグ (GH 43831)json_normalize()で、欠損マルチレベルメタデータを含むデータを読み取る際にerrors="ignore"が尊重されなかったバグ (GH 44312)read_csv()で、engine="python"の場合にheaderがNoneに設定されていると、2 行目を使用して暗黙のインデックスを推測したバグ (GH 22144)read_csv()で、engine="c"の場合にnamesが指定されても不正な行が認識されなかったバグ (GH 22144)read_csv()で、float_precision="round_trip"が初期/末尾の空白をスキップしなかったバグ (GH 43713)Python が lzma モジュールなしでビルドされている場合、lzma 機能が使用されていない場合でも pandas のインポート時に警告が発生したバグ (GH 43495)
read_csv()で、index_colにデータ型が適用されなかったバグ (GH 9435)read_csv()で、engine="python"の場合にnamesがheaderより長くデータ行と同じ場合にValueErrorが発生したバグ (GH 38453)ExcelWriterで、engine_kwargsがすべてのエンジンに渡されなかったバグ (GH 43442)read_csv()で、parse_datesがMultiIndex列とともに使用された場合にValueErrorが発生したバグ (GH 8991)read_csv()で、\nがdelimiterまたはsepとして指定され、lineterminatorと競合した場合にValueErrorが発生しなかったバグ (GH 43528)read_csv()で、日付解析が失敗した後に列が数値に変換されたバグ (GH 11019)read_csv()で、日付変換を試みる前にNaN値がnp.nanに置換されなかったバグ (GH 26203)read_csv()で、.csv ファイルを読み取り、ヌル可能な整数型からインデックス列のデータ型を推測しようとするとAttributeErrorが発生したバグ (GH 44079)to_csv()で、異なる形式の日時列が常に同じ形式に強制変換されたバグ (GH 21734)DataFrame.to_csv()およびSeries.to_csv()で、compressionが'zip'に設定されている場合に、ファイル名の末尾が ".zip" のファイルを含む zip ファイルが作成されなくなりました。代わりに、内部ファイル名がよりスマートに推測されるようになりました (GH 39465)read_csv()で、ブール値と欠損値が混在する列を浮動小数点型に読み取ると、欠損値が NaN ではなく 1.0 になったバグ (GH 42808, GH 34120)to_xml()で、拡張配列データ型を持つpd.NAに対してエラーが発生したバグ (GH 43903)read_csv()で、date_parserでパーサーを渡し、同時にparse_dates=Falseを設定した場合でも解析が呼び出されたバグ (GH 44366)read_csv()で、index_colが最初の列ではない場合にMultiIndex列の名前が正しく設定されなかったバグ (GH 38549)read_csv()で、メモリマップトファイルの作成に失敗した場合にエラーがサイレントに無視されたバグ (GH 44766)read_csv()で、バイナリモードで開かれたtempfile.SpooledTemporaryFileを渡した場合のバグ (GH 44748)read_json()で、"://" を含む json 文字列を解析しようとするとValueErrorが発生したバグ (GH 36271)read_csv()で、engine="c"とencoding_errors=Noneの場合にセグメンテーション違反が発生したバグ (GH 45180)read_csv()で、usecolsの無効な値がファイルハンドルの未閉鎖につながったバグ (GH 45384)DataFrame.to_json()でメモリリークを修正 (GH 43877)
期間#
Periodオブジェクトをnp.timedelta64オブジェクトに追加する際に、誤ってTypeErrorが発生したバグ (GH 44182)PeriodIndex.to_timestamp()で、インデックスにfreq="B"が設定されている場合に、結果のfreqがfreq="B"ではなくfreq="D"と推測されたバグ (GH 44105)Periodコンストラクターがnp.timedelta64("NaT")を誤って許可したバグ (GH 44507)PeriodIndex.to_timestamp()で、連続しないデータを持つインデックスに対して誤った値が返されたバグ (GH 44100)PeriodDtypeを持つSeries.where()で、where呼び出しが何も置換すべきではない場合に誤ってエラーが発生したバグ (GH 45135)
プロット#
非数値データが与えられた場合、
DataFrame.boxplot()は、DataFrame.hist()のような他のプロット関数と同様に、分かりにくいKeyErrorまたはZeroDivisionErrorではなく、ValueErrorを発生させるようになりました (GH 43480)
Groupby/resample/rolling#
SeriesGroupBy.apply()で、認識されない文字列引数を渡した場合に、基となるSeriesが空の場合にTypeErrorが発生しなかったバグ (GH 42021)Series.rolling.apply(),DataFrame.rolling.apply(),Series.expanding.apply()およびDataFrame.expanding.apply()で、engine="numba"の場合に*argsがユーザーが渡した関数とともにキャッシュされたバグ (GH 42287)DataFrameGroupBy.max(),SeriesGroupBy.max(),DataFrameGroupBy.min(), およびSeriesGroupBy.min()で、ヌル可能な整数型データ型で精度が失われたバグ (GH 41743)DataFrame.groupby.rolling.var()が最初のグループのみでローリング分散を計算するバグ (GH 42442)DataFrameGroupBy.shift()およびSeriesGroupBy.shift()で、fill_valueがNoneでない場合にグループ化列を返したバグ (GH 41556)SeriesGroupBy.nlargest()およびSeriesGroupBy.nsmallest()で、入力Seriesがソートされており、nがすべてのグループサイズ以上である場合にインデックスが不一致になるバグ (GH 15272, GH 16345, GH 29129)pandas.DataFrame.ewm()で、非 float64 データ型がサイレントに失敗していたバグ (GH 42452)pandas.DataFrame.rolling()の行に沿った操作 (axis=1) で、float16およびfloat32を含む列が誤って省略されたバグ (GH 41779)Resampler.aggregate()が名前付き集計の使用を許可しなかったバグ (GH 32803)Series.rolling()で、SeriesのdtypeがInt64であった場合のバグ (GH 43016)DataFrame.rolling.corr()で、DataFrameの列がMultiIndexであった場合のバグ (GH 21157)DataFrame.groupby.rolling()で、onを指定して__getitem__を呼び出すと、その後誤った結果が返されたバグ (GH 43355)DataFrameGroupBy.apply()およびSeriesGroupBy.apply()で、時間ベースのGrouperオブジェクトを使用し、グループ化ベクトルにNaTが含まれるエッジケースで誤ってValueErrorが発生したバグ (GH 43500, GH 43515)DataFrameGroupBy.mean()およびSeriesGroupBy.mean()がcomplexデータ型で失敗したバグ (GH 43701)Series.rolling()およびDataFrame.rolling()で、center=Trueでインデックスが減少している場合に、最初の行のウィンドウ境界が正しく計算されなかったバグ (GH 43927)Series.rolling()およびDataFrame.rolling()で、ナノ秒が不均一な中央揃えの日時のようなウィンドウのバグ (GH 43997)DataFrameGroupBy.mean()およびSeriesGroupBy.mean()で、列が複数回選択された場合にKeyErrorが発生したバグ (GH 44924)DataFrameGroupBy.nth()およびSeriesGroupBy.nth()がaxis=1で失敗したバグ (GH 43926)Series.rolling()およびDataFrame.rolling()で、インデックスに重複がある場合に、中央揃えの日時のようなウィンドウの右境界が尊重されなかったバグ (GH 3944)Series.rolling()およびDataFrame.rolling()で、不均一な開始配列と終了配列を返すpandas.api.indexers.BaseIndexerサブクラスを使用した場合に、ValueErrorを発生させる代わりにセグメンテーション違反が発生したバグ (GH 44470)Groupby.nunique()で、categoricalグループ化列に対してobserved=Trueが尊重されなかったバグ (GH 45128)DataFrameGroupBy.head(),SeriesGroupBy.head(),DataFrameGroupBy.tail(), およびSeriesGroupBy.tail()で、dropna=Trueの場合にNaNを持つグループがドロップされなかったバグ (GH 45089)GroupByオブジェクトで列のサブセットを選択した後、選択したサブセットではなくすべての列を返したGroupBy.__iter__()のバグ (GH 44821)Groupby.rolling()で、非単調なデータが渡された場合にValueErrorが正しく発生しなかったバグ (GH 43909)categoricalデータ型を持ち、グループ化軸の長さと異なる長さを持つSeriesでグループ化するとValueErrorが発生したバグ (GH 44179)
再整形#
多次元
numpy.ndarrayからDataFrame列を作成する際のエラーメッセージが改善されました (GH 42463)concat()で、Indexに重複があり複数のキーを持つDataFrameを連結する際に、重複するレベルエントリを持つMultiIndexが作成されたバグ (GH 42651)Seriesの重複するインデックスと非厳密なpandas.CategoricalIndex()でのpandas.cut()のバグ (GH 42185, GH 42425)DataFrame.append()で、追加された列が一致しない場合にデータ型を保持できなかったバグ (GH 43392)concat()で、boolとbooleanデータ型が連結された結果、booleanデータ型ではなくobjectデータ型になったバグ (GH 42800)crosstab()で、入力がカテゴリカルなSeriesであり、片方または両方のSeriesに存在しないカテゴリがあり、margins=Trueの場合のバグ。以前は、欠損カテゴリのマージン値はNaNでしたが、現在は正しく 0 と報告されます (GH 43505)concat()で、objs引数のすべてが同じインデックスを持ち、keys引数に重複が含まれていた場合に失敗したバグ (GH 43595)merge()で、on引数にMultiIndexを列インデックスとして使用すると、内部で列を割り当てる際にエラーが返されたバグ (GH 43734)crosstab()で、入力がリストまたはタプルであった場合に失敗したバグ (GH 44076)DataFrame.append()で、Seriesオブジェクトのリストを追加する際にindex.nameを保持できなかったバグ (GH 44109)Dataframe.apply()メソッドでのメタデータ伝播が修正され、その結果、Dataframe.transform(),Dataframe.nunique()およびDataframe.mode()の同じ問題も修正されました (GH 28283)concat()で、すべてのレベルが欠損値のみで構成されている場合にMultiIndexのレベルが浮動小数点数にキャストされたバグ (GH 44900)DataFrame.stack()で、ExtensionDtype列が誤ってエラーを発生させたバグ (GH 43561)merge()で、onキーワードを使用して異なる名前のインデックスを結合する際にKeyErrorが発生したバグ (GH 45094)Series.unstack()で、オブジェクトが結果の列で不要な型推論を行ったバグ (GH 44595)MultiIndex.join()で、重複するIntervalIndexレベルを持つ場合のバグ (GH 44096)DataFrame.replace()とSeries.replace()のバグにより、regexパラメータに基づいて異なるdtypeが結果として返される (GH 44864)DataFrame.pivot()で、DataFrameのインデックスがMultiIndexであった場合にindex=Noneを指定するとバグが発生する (GH 23955)
スパース#
DataFrame.sparse.to_coo()で、列名が一意でない場合にAttributeErrorが発生するバグ (GH 29564)SparseArray.max()およびSparseArray.min()で、非ヌル要素が0の配列に対してValueErrorが発生するバグ (GH 43527)DataFrame.sparse.to_coo()で、ゼロ以外のフィル値を黙ってゼロに変換してしまうバグ (GH 24817)SparseArrayの比較メソッドで、長さが一致しない配列ライクなオペランドに対して、入力に応じてAssertionErrorまたは不明瞭なValueErrorが発生するバグ (GH 43863)SparseArrayの算術メソッドfloordivおよびmodで、ゼロ除算時の動作が非スパースなSeriesの動作と一致しないバグ (GH 38172)SparseArrayの単項メソッドとSparseArray.isna()がインデックスを再計算しないバグ (GH 44955)
ExtensionArray#
NumPy の ufuncs
np.abs、np.positive、np.negativeは、それぞれ__abs__, __pos__, __neg__を実装する ExtensionArray に対して呼び出されたときに dtype を正しく保持するようになりました。特にこれはTimedeltaArrayで修正されました (GH 43899, GH 23316)NumPy の ufuncs
np.minimum.reducenp.maximum.reduce、np.add.reduce、およびnp.prod.reduceは、IntegerDtypeまたはFloatDtypeを持つSeriesに対してNotImplementedErrorを発生させる代わりに、正しく動作するようになりました (GH 43923, GH 44793)outキーワードを持つ NumPy ufuncs がIntegerDtypeおよびFloatingDtypeを持つ配列でサポートされるようになりました (GH 45122)多数の列を拡張 dtype で使用する場合に、断片化された
DataFrameについてPerformanceWarningが発生するのを回避しました (GH 44098)IntegerArrayおよびFloatingArrayの構築で、一致しない NA 値 (例:np.timedelta64("NaT")) が数値 NA に誤って強制されるバグ (GH 44514)BooleanArray.__eq__()およびBooleanArray.__ne__()で、互換性のない型 (文字列など) との比較でTypeErrorが発生するバグ。DataFrame.replace()が、nullable なブール列が含まれている場合にTypeErrorを発生させることがあった (GH 44499)array()で、float16dtype のndarrayが渡されたときに誤ってエラーが発生するバグ (GH 44715)BooleanArrayに対してnp.sqrtを呼び出すと、不正な形式のFloatingArrayが返されるバグ (GH 44715)Series.where()でExtensionDtypeを使用し、otherがSeriesの dtype と互換性のない NA スカラー (例: 数値 dtype のNaT) である場合に、互換性のある NA 値に誤ってキャストされるバグ (GH 44697)Series.replace()で、value=Noneを明示的に渡すとvalueが渡されなかったかのように扱われ、結果にNoneが含まれないバグ (GH 36984, GH 19998)Series.replace()で、no-op の置換において不要なダウンキャストが行われるバグ (GH 44498)Series.replace()で、FloatDtype、string[python]、またはstring[pyarrow]の dtype が可能な場合に保持されないバグ (GH 33484, GH 40732, GH 31644, GH 41215, GH 25438)
Styler#
Styler.to_html()のバグで、to_htmlメソッドが引数付きで呼び出された場合、Stylerオブジェクトが更新されていた (GH 43034)Styler.copy()のバグで、uuidが以前にコピーされていなかった (GH 40675)Styler.apply()のバグで、Seriesオブジェクトを返す関数が、そのインデックスラベルの整合性に関して正しく処理されていなかった (GH 13657, GH 42014)単一レベルの
MultiIndexをレンダリングする際のバグ (GH 43383)非スパースレンダリングと
Styler.hide_columns()またはStyler.hide_index()を組み合わせる際のバグ (GH 43464)
その他#
DataFrame.astype()で、一意でない列とSeriesのdtype引数を使用した場合のバグ (GH 44417)CustomBusinessMonthBegin.__add__()(CustomBusinessMonthEnd.__add__()) のバグで、ターゲット月の開始 (終了) がすでに営業日である場合に、追加のoffsetパラメータが適用されない (GH 41356)RangeIndex.union()で、一致する (stepが偶数)RangeIndexと、step / 2より厳密に小さい差で開始が異なる場合にバグが発生する (GH 44019)RangeIndex.difference()でsort=Noneおよびstep<0を指定した場合にソートに失敗するバグ (GH 44085)Series.replace()とDataFrame.replace()で、value=Noneと ExtensionDtypes を使用した場合のバグ (GH 44270, GH 37899)FloatingArray.equals()で、np.nan値を含む2つの配列が等しいと見なされないバグ (GH 44382)DataFrame.shift()でaxis=1とExtensionDtype列を使用し、互換性のないfill_valueが渡されたときに誤ってエラーが発生するバグ (GH 44564)DataFrame.shift()でaxis=1とperiodsがlen(frame.columns)より大きい場合に無効なDataFrameが生成されるバグ (GH 44978)DataFrame.diff()でintオブジェクトではなく NumPy の整数オブジェクトを渡した場合のバグ (GH 44572)Series.replace()で、regex=Trueをnp.nan値を含むSeriesとともに使用した場合にValueErrorが発生するバグ (GH 43344)DataFrame.to_records()で、名前が不足している場合にlevel_nに置き換えられたときに、誤ったnが使用されるバグ (GH 44818)DataFrame.eval()でresolvers引数がデフォルトの resolvers をオーバーライドしてしまうバグ (GH 34966)Series.__repr__()およびDataFrame.__repr__()が、インデックス内のすべての null 値を「NaN」に置き換えるのではなく、実際の文字列表現を使用するようになりました。「NaN」はfloat("nan")のみで使用されます (GH 45263)
貢献者#
このリリースには合計275名がパッチを貢献しました。名前に「+」が付いている方は今回初めてパッチを貢献しました。
Abhishek R
アルバート・ビラノバ・デル・モラル
Alessandro Bisiani +
Alex Lim
Alex-Gregory-1 +
Alexander Gorodetsky
Alexander Regueiro +
Alexey Györi
Alexis Mignon
Aleš Erjavec
Ali McMaster
Alibi +
Andrei Batomunkuev +
Andrew Eckart +
Andrew Hawyrluk
Andrew Wood
Anton Lodder +
Armin Berres +
Arushi Sharma +
Benedikt Heidrich +
Beni Bienz +
Benoît Vinot
Bert Palm +
Boris Rumyantsev +
Brian Hulette
Brock
Bruno Costa +
Bryan Racic +
Caleb Epstein
Calvin Ho
ChristofKaufmann +
Christopher Yeh +
Chuliang Xiao +
ClaudiaSilver +
DSM
Daniel Coll +
Daniel Schmidt +
Dare Adewumi
David +
David Sanders +
David Wales +
Derzan Chiang +
DeviousLab +
Dhruv B Shetty +
Digres45 +
Dominik Kutra +
Drew Levitt +
DriesS
EdAbati
Elle
Elliot Rampono
Endre Mark Borza
Erfan Nariman
Evgeny Naumov +
Ewout ter Hoeven +
ファンチェン・リー
Felix Divo
Felix Dulys +
Francesco Andreuzzi +
Francois Dion +
Frans Larsson +
Fred Reiss
GYvan
Gabriel Di Pardi Arruda +
Gesa Stupperich
Giacomo Caria +
Greg Siano +
Griffin Ansel
Hiroaki Ogasawara +
Horace +
Horace Lai +
アーブ・ラスティッグ
アイザック・ヴィルシュプ
JHM Darbyshire (MBP)
JHM ダービーシャー (iMac)
JHM Darbyshire +
Jack Liu
Jacob Skwirsk +
Jaime Di Cristina +
James Holcombe +
Janosh Riebesell +
Jarrod Millman
Jason Bian +
ジェフ・リーバック
Jernej Makovsek +
Jim Bradley +
Joel Gibson +
Joeperdefloep +
Johannes Mueller +
John S Bogaardt +
John Zangwill +
Jon Haitz Legarreta Gorroño +
Jon Wiggins +
Jonas Haag +
Joris Van den Bossche
Josh Friedlander
José Duarte +
Julian Fleischer +
Julien de la Bruère-T
Justin McOmie
Kadatatlu Kishore +
Kaiqi Dong
Kashif Khan +
Kavya9986 +
Kendall +
ケビン・シェパード
Kiley Hewitt
Koen Roelofs +
Krishna Chivukula
KrishnaSai2020
Leonardo Freua +
Leonardus Chen
Liang-Chi Hsieh +
Loic Diridollou +
Lorenzo Maffioli +
Luke Manley +
LunarLanding +
Marc Garcia
Marcel Bittar +
Marcel Gerber +
Marco Edward Gorelli
マルコ・ゴレリ
MarcoGorelli
Marvin +
Mateusz Piotrowski +
Mathias Hauser +
Matt Richards +
Matthew Davis +
Matthew Roeschke
Matthew Zeitlin
Matthias Bussonnier
Matti Picus
Mauro Silberberg +
マキシム・イワノフ
Maximilian Carr +
MeeseeksMachine
Michael Sarrazin +
Michael Wang +
Michał Górny +
Mike Phung +
Mike Taves +
Mohamad Hussein Rkein +
NJOKU OKECHUKWU VALENTINE +
Neal McBurnett +
Nick Anderson +
Nikita Sobolev +
Olivier Cavadenti +
PApostol +
Pandas Development Team
Patrick Hoefler
Peter
Peter Tillmann +
Prabha Arivalagan +
Pradyumna Rahul
Prerana Chakraborty
Prithvijit +
Rahul Gaikwad +
Ray Bell
Ricardo Martins +
Richard Shadrach
Robbert-jan ‘t Hoen +
Robert Voyer +
Robin Raymond +
Rohan Sharma +
Rohan Sirohia +
Roman Yurchak
Ruan Pretorius +
Sam James +
Scott Talbert
Shashwat Sharma +
Sheogorath27 +
Shiv Gupta
ショーハム・デブナス
Simon Hawkins
Soumya +
Stan West +
Stefanie Molin +
Stefano Alberto Russo +
Stephan Heßelmann
Stephen
Suyash Gupta +
スヴェン
Swanand01 +
Sylvain Marié +
TLouf
Tania Allard +
テルジ・ピーターセン
TheDerivator +
Thomas Dickson
Thomas Kastl +
Thomas Kluyver
Thomas Li
Thomas Smith
Tim Swast
Tim Tran +
Tobias McNulty +
Tobias Pitters
Tomoki Nakagawa +
Tony Hirst +
トルステン・ヴェルトワイン
V.I. Wood +
Vaibhav K +
Valentin Oliver Loftsson +
Varun Shrivastava +
Vivek Thazhathattil +
Vyom Pathak
Wenjun Si
William Andrea +
William Bradley +
Wojciech Sadowski +
Yao-Ching Huang +
Yash Gupta +
Yiannis Hadjicharalambous +
ヨシキ・バスケス・バエザ
ユアンハオ・ゲン
Yury Mikhaylov
Yvan Gatete +
Yves Delley +
Zach Rait
Zbyszek Królikowski +
Zero +
Zheyuan
Zhiyi Wu +
aiudirog
ali sayyah +
aneesh98 +
aptalca
arw2019 +
attack68
brendandrury +
bubblingoak +
calvinsomething +
claws +
deponovo +
dicristina
el-g-1 +
evensure +
fotino21 +
fshi01 +
gfkang +
github-actions[bot]
i-aki-y
jbrockmendel
jreback
juliandwain +
jxb4892 +
kendall smith +
lmcindewar +
lrepiton
maximilianaccardo +
michal-gh
neelmraman
パルテフ
phofl +
pratyushsharan +
quantumalaviya +
rafael +
realead
rocabrera +
rosagold
saehuihwang +
salomondush +
shubham11941140 +
srinivasan +
stphnlyd
suoniq
trevorkask +
tushushu
tyuyoshi +
usersblock +
vernetya +
vrserpa +
willie3838 +
zeitlinv +
zhangxiaoxing +