1.0.0 の新機能 (2020年1月29日)#
これらは pandas 1.0.0 の変更点です。他のバージョンの pandas を含む完全な変更履歴については、リリースノートをご覧ください。
注
pandas 1.0 リリースでは、以前のリリースで非推奨となった多くの機能が削除されました(概要については、以下をご覧ください)。pandas 1.0 にアップグレードする前に、まず pandas 0.25 にアップグレードし、コードが警告なしで動作することを確認することをお勧めします。
新しい非推奨ポリシー#
pandas 1.0.0 以降、pandas はリリースに SemVer の亜種を採用します。簡単に言うと、
非推奨はマイナーリリース (例: 1.1.0, 1.2.0, 2.1.0, ...) で導入されます。
非推奨はメジャーリリース (例: 1.0.0, 2.0.0, 3.0.0, ...) で適用されます。
API 破壊的変更はメジャーリリースでのみ行われます (実験的機能を除く)。
詳細については、バージョンポリシーをご覧ください。
機能強化#
rolling.apply と expanding.apply で Numba を使用する#
apply() と apply() に engine キーワードを追加しました。これにより、ユーザーは Cython の代わりに Numba を使用してルーチンを実行できます。Numba エンジンを使用すると、apply 関数が NumPy 配列で操作でき、データセットが大きい場合 (100万行以上) に大幅なパフォーマンス向上が期待できます。詳細については、ローリング適用ドキュメントを参照してください (GH 28987、GH 30936)。
ローリング操作のカスタムウィンドウを定義する#
rolling 操作中にウィンドウの境界がどのように作成されるかをユーザーが定義できる pandas.api.indexers.BaseIndexer() クラスを追加しました。ユーザーは、pandas.api.indexers.BaseIndexer() のサブクラスで独自の get_window_bounds メソッドを定義できます。このメソッドは、ローリング集計中に各ウィンドウで使用される開始インデックスと終了インデックスを生成します。詳細と使用例については、カスタムウィンドウローリングドキュメントを参照してください。
Markdown への変換#
Markdown テーブルを作成するための to_markdown() を追加しました (GH 11052)。
In [1]: df = pd.DataFrame({"A": [1, 2, 3], "B": [1, 2, 3]}, index=['a', 'a', 'b'])
In [2]: print(df.to_markdown())
| | A | B |
|:---|----:|----:|
| a | 1 | 1 |
| a | 2 | 2 |
| b | 3 | 3 |
実験的な新機能#
欠損値を表す実験的な NA スカラー#
スカラーの欠損値を表すために、新しい pd.NA 値 (シングルトン) が導入されました。これまで、pandas は欠損データを表すためにいくつかの値を使用していました: 浮動小数点データには np.nan、オブジェクト型データには np.nan または None、日時型データには pd.NaT です。pd.NA の目標は、データ型全体で一貫して使用できる「欠損」インジケータを提供することです。pd.NA は現在、null許容整数型およびブール型データ型と、新しい文字列データ型で使用されています (GH 28095)。
警告
実験的: pd.NA の動作は、警告なしで変更される可能性があります。
例として、nullable integer dtype を使用して Series を作成します。
In [3]: s = pd.Series([1, 2, None], dtype="Int64")
In [4]: s
Out[4]:
0 1
1 2
2 <NA>
Length: 3, dtype: Int64
In [5]: s[2]
Out[5]: <NA>
np.nan と比較して、pd.NA は特定の操作で異なる動作をします。算術演算に加えて、pd.NA は比較演算でも「欠損」または「不明」として伝播します。
In [6]: np.nan > 1
Out[6]: False
In [7]: pd.NA > 1
Out[7]: <NA>
論理演算の場合、pd.NA は 3値論理 (または *Kleene logic*) のルールに従います。例:
In [8]: pd.NA | True
Out[8]: True
詳細については、欠損データに関するユーザーガイドのNAセクションを参照してください。
専用の文字列データ型#
文字列データ専用の拡張型である StringDtype を追加しました。以前は、文字列は通常、オブジェクト型 NumPy 配列に格納されていました (GH 29975)。
警告
StringDtype は現在、実験的と見なされています。実装および API の一部は、警告なしで変更される可能性があります。
'string' 拡張型は、オブジェクト型 NumPy 配列のいくつかの問題を解決します。
objectdtype 配列には、誤って文字列と非文字列が混在して格納される可能性があります。StringArrayは文字列のみを格納できます。objectdtype は、DataFrame.select_dtypes()のような dtype 固有の操作を壊します。非テキストではあるが依然としてオブジェクト型カラムを除外しながら、*純粋な* テキストを選択する明確な方法はありません。コードを読むとき、
objectdtype 配列の内容はstringよりも不明瞭です。
In [9]: pd.Series(['abc', None, 'def'], dtype=pd.StringDtype())
Out[9]:
0 abc
1 <NA>
2 def
Length: 3, dtype: string
エイリアス "string" も使用できます。
In [10]: s = pd.Series(['abc', None, 'def'], dtype="string")
In [11]: s
Out[11]:
0 abc
1 <NA>
2 def
Length: 3, dtype: string
通常の文字列アクセサメソッドが機能します。適切な場合、Series または DataFrame の列の戻り値の型も文字列 dtype になります。
In [12]: s.str.upper()
Out[12]:
0 ABC
1 <NA>
2 DEF
Length: 3, dtype: string
In [13]: s.str.split('b', expand=True).dtypes
Out[13]:
0 string[python]
1 string[python]
Length: 2, dtype: object
整数を返す文字列アクセサメソッドは、Int64Dtype の値を返します。
In [14]: s.str.count("a")
Out[14]:
0 1
1 <NA>
2 0
Length: 3, dtype: Int64
文字列を扱う際は、明示的に string データ型を使用することをお勧めします。詳細については、テキストデータ型を参照してください。
欠損値に対応するブールデータ型#
欠損値を保持できるブールデータ専用の拡張型である BooleanDtype / BooleanArray を追加しました。ブール型 NumPy 配列に基づくデフォルトの bool データ型では、列は True または False のみを保持でき、欠損値は保持できません。この新しい BooleanArray は、別のマスクでこれを追跡することにより、欠損値も格納できます (GH 29555、GH 30095、GH 31131)。
In [15]: pd.Series([True, False, None], dtype=pd.BooleanDtype())
Out[15]:
0 True
1 False
2 <NA>
Length: 3, dtype: boolean
エイリアス "boolean" も使用できます。
In [16]: s = pd.Series([True, False, None], dtype="boolean")
In [17]: s
Out[17]:
0 True
1 False
2 <NA>
Length: 3, dtype: boolean
サポートされている拡張 dtype の使用を容易にするための convert_dtypes メソッド#
pd.NA をサポートする拡張データ型である StringDtype、BooleanDtype、Int64Dtype、Int32Dtype などの使用を促進するために、DataFrame.convert_dtypes() と Series.convert_dtypes() メソッドが導入されました (GH 29752) (GH 30929)。
例
In [18]: df = pd.DataFrame({'x': ['abc', None, 'def'],
....: 'y': [1, 2, np.nan],
....: 'z': [True, False, True]})
....:
In [19]: df
Out[19]:
x y z
0 abc 1.0 True
1 None 2.0 False
2 def NaN True
[3 rows x 3 columns]
In [20]: df.dtypes
Out[20]:
x object
y float64
z bool
Length: 3, dtype: object
In [21]: converted = df.convert_dtypes()
In [22]: converted
Out[22]:
x y z
0 abc 1 True
1 <NA> 2 False
2 def <NA> True
[3 rows x 3 columns]
In [23]: converted.dtypes
Out[23]:
x string[python]
y Int64
z boolean
Length: 3, dtype: object
これは、read_csv() や read_excel() などのリーダーを使用してデータを読み込んだ後に特に役立ちます。説明はこちらをご覧ください。
その他の機能強化#
DataFrame.to_string()に、幅の広い列が切り捨てられるタイミングを制御するmax_colwidthパラメータが追加されました (GH 9784)。Series.to_numpy()、Index.to_numpy()、およびDataFrame.to_numpy()に、欠損値に使用される値を制御するためのna_value引数が追加されました (GH 30322)。MultiIndex.from_product()は、明示的に指定されていない場合、入力からレベル名を推論します (GH 27292)。DataFrame.to_latex()がcaptionおよびlabel引数を受け入れるようになりました (GH 25436)。Nullable integer、新しい string dtype、および期間データ型の DataFrame が
pyarrow(>=0.15.0) に変換できるようになり、pyarrowエンジンを使用する際に Parquet ファイル形式への書き込みがサポートされるようになりました (GH 28368)。pyarrow >= 0.16 からは、Parquet への完全なラウンドトリップ (to_parquet()/read_parquet()を使用した書き込みと読み戻し) がサポートされます (GH 20612)。to_parquet()は、pyarrow エンジンのユーザー定義スキーマに対するschema引数を適切に処理するようになりました (GH 30270)。DataFrame.to_json()は、JSON 出力の整形表示を有効にするためにindent整数引数を受け入れるようになりました (GH 12004)。read_stata()は Stata 119 dta ファイルを読み取ることができます (GH 28250)。Window.var()およびWindow.std()関数を実装しました (GH 26597)。DataFrame.to_string()に非ASCIIテキスト用のencoding引数が追加されました (GH 28766)。DataFrame.to_html()に非ASCIIテキスト用のencoding引数が追加されました (GH 28663)。Styler.background_gradient()はvminおよびvmax引数を受け入れるようになりました (GH 12145)。Styler.format()に、欠損値のフォーマットを支援するna_repパラメータが追加されました (GH 21527、GH 28358)。read_excel()は、engine='pyxlsb'を渡すことでバイナリ Excel (.xlsb) ファイルを読み取ることができるようになりました。詳細と使用例については、バイナリ Excel ファイルのドキュメントを参照してください。GH 8540 を閉じます。DataFrame.to_parquet()のpartition_cols引数が文字列を受け入れるようになりました (GH 27117)。pandas.read_json()はNaN、Infinity、および-Infinityを解析するようになりました (GH 12213)。DataFrame コンストラクタは
ExtensionArrayと共にExtensionArraydtype を保持します (GH 11363)。DataFrame.sort_values()およびSeries.sort_values()に、ソート後にインデックスをリセットできるignore_indexキーワードが追加されました (GH 30114)。DataFrame.sort_index()およびSeries.sort_index()に、インデックスをリセットするためのignore_indexキーワードが追加されました (GH 30114)。DataFrame.drop_duplicates()に、インデックスをリセットするためのignore_indexキーワードが追加されました (GH 30114)。バージョン 118 および 119 で Stata dta ファイルをエクスポートするための新しいライター
StataWriterUTF8が追加されました。これらのファイル形式は、Unicode 文字を含む文字列のエクスポートをサポートしています。フォーマット 119 は、32,767 を超える変数を持つデータセットをサポートしています (GH 23573、GH 30959)。Series.map()がマッパーとしてcollections.abc.Mappingサブクラスを受け入れるようになりました (GH 29733)。Timestamp.fromisocalendar()は Python 3.8 以降と互換性があるようになりました (GH 28115)。DataFrame.to_pickle()およびread_pickle()が URL を受け入れるようになりました (GH 30163)。
下位互換性のない API の変更#
MultiIndex.levels からの名前の使用を避ける#
MultiIndex の大規模なリファクタリングの一部として、レベル名はレベルとは別に格納されるようになりました (GH 27242)。名前には MultiIndex.names を使用し、名前の更新には Index.set_names() を使用することをお勧めします。
後方互換性のために、レベルを介して名前を *アクセス* することができます。
In [24]: mi = pd.MultiIndex.from_product([[1, 2], ['a', 'b']], names=['x', 'y'])
In [25]: mi.levels[0].name
Out[25]: 'x'
ただし、レベルを介して MultiIndex の名前を *更新* することはできなくなりました。
In [26]: mi.levels[0].name = "new name"
---------------------------------------------------------------------------
RuntimeError Traceback (most recent call last)
Cell In[26], line 1
----> 1 mi.levels[0].name = "new name"
File ~/work/pandas/pandas/pandas/core/indexes/base.py:1697, in Index.name(self, value)
1693 @name.setter
1694 def name(self, value: Hashable) -> None:
1695 if self._no_setting_name:
1696 # Used in MultiIndex.levels to avoid silently ignoring name updates.
-> 1697 raise RuntimeError(
1698 "Cannot set name on a level of a MultiIndex. Use "
1699 "'MultiIndex.set_names' instead."
1700 )
1701 maybe_extract_name(value, None, type(self))
1702 self._name = value
RuntimeError: Cannot set name on a level of a MultiIndex. Use 'MultiIndex.set_names' instead.
In [27]: mi.names
Out[27]: FrozenList(['x', 'y'])
更新するには、新しい MultiIndex を返す MultiIndex.set_names を使用します。
In [28]: mi2 = mi.set_names("new name", level=0)
In [29]: mi2.names
Out[29]: FrozenList(['new name', 'y'])
IntervalArray の新しい repr#
pandas.arrays.IntervalArray は、他の配列クラスに準拠した新しい __repr__ を採用しました (GH 25022)。
pandas 0.25.x
In [1]: pd.arrays.IntervalArray.from_tuples([(0, 1), (2, 3)])
Out[2]:
IntervalArray([(0, 1], (2, 3]],
closed='right',
dtype='interval[int64]')
pandas 1.0.0
In [30]: pd.arrays.IntervalArray.from_tuples([(0, 1), (2, 3)])
Out[30]:
<IntervalArray>
[(0, 1], (2, 3]]
Length: 2, dtype: interval[int64, right]
DataFrame.rename は1つの位置引数のみを受け入れるようになりました#
DataFrame.rename() は以前は、曖昧または未定義の動作につながる位置引数を受け入れていました。pandas 1.0 以降では、デフォルト軸に沿ってラベルを新しい名前にマップする最初の引数のみが位置によって渡すことが許可されています (GH 29136)。
pandas 0.25.x
In [1]: df = pd.DataFrame([[1]])
In [2]: df.rename({0: 1}, {0: 2})
Out[2]:
FutureWarning: ...Use named arguments to resolve ambiguity...
2
1 1
pandas 1.0.0
In [3]: df.rename({0: 1}, {0: 2})
Traceback (most recent call last):
...
TypeError: rename() takes from 1 to 2 positional arguments but 3 were given
競合する引数や潜在的に曖昧な引数が指定された場合、エラーが発生するようになりました。
pandas 0.25.x
In [4]: df.rename({0: 1}, index={0: 2})
Out[4]:
0
1 1
In [5]: df.rename(mapper={0: 1}, index={0: 2})
Out[5]:
0
2 1
pandas 1.0.0
In [6]: df.rename({0: 1}, index={0: 2})
Traceback (most recent call last):
...
TypeError: Cannot specify both 'mapper' and any of 'index' or 'columns'
In [7]: df.rename(mapper={0: 1}, index={0: 2})
Traceback (most recent call last):
...
TypeError: Cannot specify both 'mapper' and any of 'index' or 'columns'
最初の位置引数が適用される軸は、axis キーワード引数を指定することで変更できます。
In [31]: df.rename({0: 1})
Out[31]:
0
1 1
[1 rows x 1 columns]
In [32]: df.rename({0: 1}, axis=1)
Out[32]:
1
0 1
[1 rows x 1 columns]
インデックスと列のラベルの両方を更新したい場合は、それぞれのキーワードを使用してください。
In [33]: df.rename(index={0: 1}, columns={0: 2})
Out[33]:
2
1 1
[1 rows x 1 columns]
DataFrame の詳細な情報出力の拡張#
DataFrame.info() が列の概要の行番号を表示するようになりました (GH 17304)。
pandas 0.25.x
In [1]: df = pd.DataFrame({"int_col": [1, 2, 3],
... "text_col": ["a", "b", "c"],
... "float_col": [0.0, 0.1, 0.2]})
In [2]: df.info(verbose=True)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
int_col 3 non-null int64
text_col 3 non-null object
float_col 3 non-null float64
dtypes: float64(1), int64(1), object(1)
memory usage: 152.0+ bytes
pandas 1.0.0
In [34]: df = pd.DataFrame({"int_col": [1, 2, 3],
....: "text_col": ["a", "b", "c"],
....: "float_col": [0.0, 0.1, 0.2]})
....:
In [35]: df.info(verbose=True)
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 int_col 3 non-null int64
1 text_col 3 non-null object
2 float_col 3 non-null float64
dtypes: float64(1), int64(1), object(1)
memory usage: 200.0+ bytes
pandas.array() の推論の変更点#
pandas.array() は、いくつかのケースで pandas の新しい拡張型を推論するようになりました (GH 29791)。
文字列データ (欠損値を含む) は、
arrays.StringArrayを返すようになりました。整数データ (欠損値を含む) は、
arrays.IntegerArrayを返すようになりました。ブールデータ (欠損値を含む) は、新しい
arrays.BooleanArrayを返すようになりました。
pandas 0.25.x
In [1]: pd.array(["a", None])
Out[1]:
<PandasArray>
['a', None]
Length: 2, dtype: object
In [2]: pd.array([1, None])
Out[2]:
<PandasArray>
[1, None]
Length: 2, dtype: object
pandas 1.0.0
In [36]: pd.array(["a", None])
Out[36]:
<StringArray>
['a', <NA>]
Length: 2, dtype: string
In [37]: pd.array([1, None])
Out[37]:
<IntegerArray>
[1, <NA>]
Length: 2, dtype: Int64
念のため、すべての推論を無効にするには dtype を指定できます。
arrays.IntegerArray は pandas.NA を使用するようになりました#
arrays.IntegerArray は、欠損値マーカーとして numpy.nan ではなく pandas.NA を使用するようになりました (GH 29964)。
pandas 0.25.x
In [1]: a = pd.array([1, 2, None], dtype="Int64")
In [2]: a
Out[2]:
<IntegerArray>
[1, 2, NaN]
Length: 3, dtype: Int64
In [3]: a[2]
Out[3]:
nan
pandas 1.0.0
In [38]: a = pd.array([1, 2, None], dtype="Int64")
In [39]: a
Out[39]:
<IntegerArray>
[1, 2, <NA>]
Length: 3, dtype: Int64
In [40]: a[2]
Out[40]: <NA>
これには、いくつかの API 破壊的な結果があります。
NumPy ndarray への変換
NumPy 配列に変換する際、欠損値は pd.NA となり、float に変換することはできません。したがって、np.asarray(integer_array, dtype="float") を呼び出すと、エラーが発生するようになりました。
pandas 0.25.x
In [1]: np.asarray(a, dtype="float")
Out[1]:
array([ 1., 2., nan])
pandas 1.0.0
In [41]: np.asarray(a, dtype="float")
Out[41]: array([ 1., 2., nan])
代わりに、明示的な na_value を指定して arrays.IntegerArray.to_numpy() を使用してください。
In [42]: a.to_numpy(dtype="float", na_value=np.nan)
Out[42]: array([ 1., 2., nan])
集計は pd.NA を返す可能性があります
skipna=False で合計などの集計を実行する場合、欠損値が存在すると結果は np.nan の代わりに pd.NA になります (GH 30958)。
pandas 0.25.x
In [1]: pd.Series(a).sum(skipna=False)
Out[1]:
nan
pandas 1.0.0
In [43]: pd.Series(a).sum(skipna=False)
Out[43]: <NA>
value_counts は null許容整数 dtype を返す
nullable integer dtype を持つ Series.value_counts() は、値に対して nullable integer dtype を返すようになりました。
pandas 0.25.x
In [1]: pd.Series([2, 1, 1, None], dtype="Int64").value_counts().dtype
Out[1]:
dtype('int64')
pandas 1.0.0
In [44]: pd.Series([2, 1, 1, None], dtype="Int64").value_counts().dtype
Out[44]: Int64Dtype()
arrays.IntegerArray の比較は arrays.BooleanArray を返します#
arrays.IntegerArray に対する比較演算は、NumPy 配列ではなく arrays.BooleanArray を返すようになりました (GH 29964)。
pandas 0.25.x
In [1]: a = pd.array([1, 2, None], dtype="Int64")
In [2]: a
Out[2]:
<IntegerArray>
[1, 2, NaN]
Length: 3, dtype: Int64
In [3]: a > 1
Out[3]:
array([False, True, False])
pandas 1.0.0
In [45]: a = pd.array([1, 2, None], dtype="Int64")
In [46]: a > 1
Out[46]:
<BooleanArray>
[False, True, <NA>]
Length: 3, dtype: boolean
欠損値は、numpy.nan のように常に不等比較されるのではなく、伝播することに注意してください。詳細については、NAセマンティクスを参照してください。
デフォルトで Categorical.min() は np.nan の代わりに最小値を返すようになりました#
Categorical が np.nan を含む場合、Categorical.min() はデフォルトで np.nan を返さなくなりました (skipna=True) (GH 25303)。
pandas 0.25.x
In [1]: pd.Categorical([1, 2, np.nan], ordered=True).min()
Out[1]: nan
pandas 1.0.0
In [47]: pd.Categorical([1, 2, np.nan], ordered=True).min()
Out[47]: 1
空の pandas.Series のデフォルトの dtype#
dtype を指定せずに空の pandas.Series を初期化すると、DeprecationWarning が発生するようになりました (GH 17261)。将来のリリースでは、DataFrame および Index の動作と一貫性を持たせるために、デフォルトの dtype が float64 から object に変更されます。
pandas 1.0.0
In [1]: pd.Series()
Out[2]:
DeprecationWarning: The default dtype for empty Series will be 'object' instead of 'float64' in a future version. Specify a dtype explicitly to silence this warning.
Series([], dtype: float64)
リサンプル操作の結果の dtype 推論の変更#
DataFrame.resample() 集計における結果の dtype のルールが、拡張型について変更されました (GH 31359)。以前は、pandas は結果を元の dtype に変換しようとし、それが不可能な場合は通常の推論ルールにフォールバックしていました。現在、pandas は、結果のスカラー値が拡張 dtype のスカラー型のインスタンスである場合にのみ、元の dtype の結果を返します。
In [48]: df = pd.DataFrame({"A": ['a', 'b']}, dtype='category',
....: index=pd.date_range('2000', periods=2))
....:
In [49]: df
Out[49]:
A
2000-01-01 a
2000-01-02 b
[2 rows x 1 columns]
pandas 0.25.x
In [1]> df.resample("2D").agg(lambda x: 'a').A.dtype
Out[1]:
CategoricalDtype(categories=['a', 'b'], ordered=False)
pandas 1.0.0
In [50]: df.resample("2D").agg(lambda x: 'a').A.dtype
Out[50]: CategoricalDtype(categories=['a', 'b'], ordered=False, categories_dtype=object)
これにより、resample と groupby の間の不整合が修正されます。また、結果が元の dtype にどのようにキャストされるかによって、結果の **値** が変化する可能性のある潜在的なバグも修正されます。
pandas 0.25.x
In [1] df.resample("2D").agg(lambda x: 'c')
Out[1]:
A
0 NaN
pandas 1.0.0
In [51]: df.resample("2D").agg(lambda x: 'c')
Out[51]:
A
2000-01-01 c
[1 rows x 1 columns]
Python の最小バージョンが引き上げられました#
pandas 1.0.0 は Python 3.6.1 以降をサポートしています (GH 29212)。
依存関係の最小バージョン引き上げ#
いくつかの依存関係の最小サポートバージョンが更新されました (GH 29766、GH 29723)。インストールされている場合、以下のライブラリが必要です。
パッケージ |
最小バージョン |
必須 |
変更済み |
|---|---|---|---|
numpy |
1.13.3 |
X |
|
pytz |
2015.4 |
X |
|
python-dateutil |
2.6.1 |
X |
|
bottleneck |
1.2.1 |
||
numexpr |
2.6.2 |
||
pytest (開発) |
4.0.2 |
オプションのライブラリについては、一般的に最新バージョンを使用することが推奨されます。以下の表は、pandas の開発全体で現在テストされているライブラリごとの最低バージョンを示しています。最低テストバージョンより古いオプションのライブラリは動作する可能性がありますが、サポートされているとはみなされません。
パッケージ |
最小バージョン |
変更済み |
|---|---|---|
beautifulsoup4 |
4.6.0 |
|
fastparquet |
0.3.2 |
X |
gcsfs |
0.2.2 |
|
lxml |
3.8.0 |
|
matplotlib |
2.2.2 |
|
numba |
0.46.0 |
X |
openpyxl |
2.5.7 |
X |
pyarrow |
0.13.0 |
X |
pymysql |
0.7.1 |
|
pytables |
3.4.2 |
|
s3fs |
0.3.0 |
X |
scipy |
0.19.0 |
|
sqlalchemy |
1.1.4 |
|
xarray |
0.8.2 |
|
xlrd |
1.1.0 |
|
xlsxwriter |
0.9.8 |
|
xlwt |
1.2.0 |
詳細については、依存関係 および オプションの依存関係 を参照してください。
ビルドの変更#
pandas は pyproject.toml ファイルを追加し、PyPI にアップロードされるソースディストリビューションに Cython 化されたファイルを含めなくなります (GH 28341、GH 20775)。ビルド済みのディストリビューション (wheel) をインストールしている場合、または conda を介してインストールしている場合は、影響はありません。ソースから pandas をビルドしている場合、pip install pandas を呼び出す前にビルド環境に Cython をインストールする必要はなくなります。
その他の API の変更#
DataFrameGroupBy.transform()およびSeriesGroupBy.transform()は、無効な操作名に対してエラーを発生させるようになりました (GH 27489)。pandas.api.types.infer_dtype()は、整数とnp.nanの混合に対して「integer-na」を返すようになりました (GH 27283)。MultiIndex.from_arrays()は、names=Noneが明示的に指定されている場合、配列から名前を推論しなくなりました (GH 27292)。タブ補完を改善するために、pandas は
dir(例:dir(df)) を使用して pandas オブジェクトをイントロスペクトするときに、ほとんどの非推奨属性を含めません。除外される属性を確認するには、オブジェクトの_deprecations属性を参照してください (例:pd.DataFrame._deprecations) (GH 28805)。options.matplotlib.register_convertersのデフォルト設定値がTrueから"auto"に変更されました (GH 18720)。これにより、pandas のカスタムフォーマッターは、plot()を介して pandas によって作成されたプロットにのみ適用されるようになります。以前は、pandas のフォーマッターは、plot()の後に作成されたすべてのプロットに適用されていました。詳細については、単位登録を参照してください。Series.dropna()は、単一のhowパラメーターの代わりに**kwargs引数を削除しました。**kwargsにhow以外のものを指定すると、以前はTypeErrorが発生していました (GH 29388)。pandas をテストする場合、pytest の新しい最小必要バージョンは 5.0.1 です (GH 29664)。
Series.str.__iter__()は非推奨となり、将来のリリースで削除されます (GH 28277)。read_csv()のデフォルトの NA 値のリストに<NA>が追加されました (GH 30821)。
ドキュメントの改善#
大規模データセットへのスケーリングに関する新しいセクションを追加しました (GH 28315)。
HDF5 データセットの MultiIndex のクエリに関するサブセクションを追加しました (GH 28791)。
非推奨#
Series.item()とIndex.item()は非推奨ではなくなりました (GH 29250)。Index.set_valueは非推奨になりました。特定のインデックスidx、配列arr、idx内のidx_valの値、およびvalの新しい値について、idx.set_value(arr, idx_val, val)はarr[idx.get_loc(idx_val)] = valと同等であり、代わりにこれを使用する必要があります (GH 28621)。is_extension_type()は非推奨になりました。is_extension_array_dtype()を代わりに使用してください (GH 29457)。DateOffset.isAnchored()およびDatetOffset.onOffset()は非推奨になり、将来のバージョンで削除されます。代わりにDateOffset.is_anchored()およびDateOffset.is_on_offset()を使用してください (GH 30340)。pandas.tseries.frequencies.get_offsetは非推奨になり、将来のバージョンで削除されます。代わりにpandas.tseries.frequencies.to_offsetを使用してください (GH 4205)。Categorical.take_nd()およびCategoricalIndex.take_nd()は非推奨になりました。代わりにCategorical.take()およびCategoricalIndex.take()を使用してください (GH 27745)。Categorical.min()とCategorical.max()のパラメータnumeric_onlyは非推奨になり、skipnaに置き換えられました (GH 25303)。lreshape()のパラメータlabelは非推奨になり、将来のバージョンで削除されます (GH 29742)。pandas.core.indexは非推奨になり、将来のバージョンで削除されます。公開クラスはトップレベルの名前空間で利用できます (GH 19711)。pandas.json_normalize()がトップレベルの名前空間で公開されるようになりました。pandas.io.json.json_normalizeとしてのjson_normalizeの使用は非推奨になり、代わりにpandas.json_normalize()としてのjson_normalizeの使用が推奨されます (GH 27586)。pandas.read_json()のnumpy引数は非推奨になりました (GH 28512)。DataFrame.to_stata()、DataFrame.to_feather()、およびDataFrame.to_parquet()の引数「fname」は非推奨になり、代わりに「path」を使用してください (GH 23574)。RangeIndexの非推奨の内部属性_start、_stop、および_stepは、DeprecationWarningの代わりにFutureWarningを発生させるようになりました (GH 26581)。pandas.util.testingモジュールは非推奨になりました。アサーション関数でドキュメント化されているpandas.testingのパブリック API を使用してください (GH 16232)。pandas.SparseArrayは非推奨になりました。代わりにpandas.arrays.SparseArray(arrays.SparseArray) を使用してください (GH 30642)。Series.take()およびDataFrame.take()のパラメータis_copyは非推奨になり、将来のバージョンで削除されます (GH 27357)。Indexでの多次元インデックス付け (例:index[:, None]) のサポートは非推奨になり、将来のバージョンで削除されます。代わりに、インデックス付けする前に numpy 配列に変換してください (GH 30588)。pandas.npサブモジュールは非推奨になりました。代わりに numpy を直接インポートしてください (GH 30296)。pandas.datetimeクラスは非推奨になりました。代わりにdatetimeからインポートしてください (GH 30610)。diffは、将来、拡張型の dtype を暗黙的に失うのではなく、TypeErrorを発生させるようになります。代わりに、diffを呼び出す前に正しい dtype に変換してください (GH 31025)。
グループ化された DataFrame から列を選択する
DataFrameGroupBy オブジェクトから列を選択する際、単一の角括弧内に個々のキー (またはキーのタプル) を渡すことは非推奨になり、代わりにアイテムのリストを使用する必要があります (GH 23566)。例:
df = pd.DataFrame({
"A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"],
"B": np.random.randn(8),
"C": np.random.randn(8),
})
g = df.groupby('A')
# single key, returns SeriesGroupBy
g['B']
# tuple of single key, returns SeriesGroupBy
g[('B',)]
# tuple of multiple keys, returns DataFrameGroupBy, raises FutureWarning
g[('B', 'C')]
# multiple keys passed directly, returns DataFrameGroupBy, raises FutureWarning
# (implicitly converts the passed strings into a single tuple)
g['B', 'C']
# proper way, returns DataFrameGroupBy
g[['B', 'C']]
以前のバージョンの非推奨/変更の削除#
SparseSeries と SparseDataFrame が削除されました
SparseSeries、SparseDataFrame、および DataFrame.to_sparse メソッドは削除されました (GH 28425)。代わりに、スパース値を持つ Series または DataFrame を使用することをお勧めします。
Matplotlib 単位登録
以前は、pandas をインポートする副作用として、pandas は matplotlib にコンバーターを登録していました (GH 18720)。これにより、pandas をインポートした後に matplotlib を介して作成されたプロットの出力が変更されました。これは、plot() を直接使用している場合でも同様でした。
matplotlib プロットで pandas フォーマッターを使用するには、以下を指定します。
In [1]: import pandas as pd
In [2]: pd.options.plotting.matplotlib.register_converters = True
DataFrame.plot() および Series.plot() によって作成されたプロットは、コンバーターを自動的に登録することに注意してください。唯一の動作変更は、matplotlib.pyplot.plot または matplotlib.Axes.plot を介して日付のようなオブジェクトをプロットする場合です。詳細については、時系列プロットのカスタムフォーマッターを参照してください。
その他の削除
read_stata()、StataReader、およびStataReader.read()から以前非推奨だったキーワード「index」が削除されました。代わりに「index_col」を使用してください (GH 17328)。StataReader.dataメソッドが削除されました。代わりにStataReader.read()を使用してください (GH 9493)。pandas.plotting._matplotlib.tsplotが削除されました。代わりにSeries.plot()を使用してください (GH 19980)。pandas.tseries.converter.registerはpandas.plotting.register_matplotlib_converters()に移動されました (GH 18307)。Series.plot()は位置引数を受け入れなくなりました。代わりにキーワード引数を渡してください (GH 30003)。DataFrame.hist()とSeries.hist()はfigsize="default"を許可しなくなりました。代わりにタプルを渡して図のサイズを指定してください (GH 30003)。整数型配列を
Timedeltaでフロア除算するとTypeErrorが発生するようになりました (GH 21036)。TimedeltaIndexおよびDatetimeIndexは、「timedelta64」や「datetime64」のようなナノ秒以外の dtype 文字列を受け入れなくなりました。代わりに「timedelta64[ns]」および「datetime64[ns]」を使用してください (GH 24806)。pandas.api.types.infer_dtype()のデフォルトの「skipna」引数がFalseからTrueに変更されました (GH 24050)。Series.ixとDataFrame.ixが削除されました (GH 26438)。Index.summaryが削除されました (GH 18217)。Indexコンストラクタから、以前非推奨であったキーワード「fastpath」が削除されました (GH 23110)。Series.get_value、Series.set_value、DataFrame.get_value、DataFrame.set_valueが削除されました (GH 17739)。Series.compoundおよびDataFrame.compoundが削除されました (GH 26405)。DataFrame.set_index()およびSeries.set_axis()のデフォルトの「inplace」引数がNoneからFalseに変更されました (GH 27600)。Series.cat.categorical、Series.cat.index、Series.cat.nameが削除されました (GH 24751)。to_datetime()およびto_timedelta()から、以前非推奨だったキーワード「box」が削除されました。さらに、これらは常にDatetimeIndex、TimedeltaIndex、Index、Series、またはDataFrameを返すようになりました (GH 24486)。to_timedelta()、Timedelta、およびTimedeltaIndexは、「unit」引数に「M」、「y」、「Y」を許可しなくなりました (GH 23264)。(非公開)
offsets.generate_rangeから以前非推奨であったキーワード「time_rule」が削除されました。core.arrays._ranges.generate_range()に移動されました (GH 24157)。DataFrame.loc()またはSeries.loc()がリストのようなインデクサーと欠損ラベルを持つ場合、再インデックス化しなくなりました (GH 17295)。DataFrame.to_excel()およびSeries.to_excel()は、存在しない列がある場合でも再インデックス化しなくなりました (GH 17295)。concat()から以前非推奨だったキーワード「join_axes」が削除されました。代わりに、結果に対してreindex_likeを使用してください (GH 22318)。DataFrame.sort_index()から、以前非推奨であったキーワード「by」が削除されました。代わりにDataFrame.sort_values()を使用してください (GH 10726)。DataFrame.aggregate()、Series.aggregate()、core.groupby.DataFrameGroupBy.aggregate()、core.groupby.SeriesGroupBy.aggregate()、core.window.rolling.Rolling.aggregate()でのネストされた名前変更のサポートが削除されました (GH 18529)。datetime64データをTimedeltaIndexに、またはtimedelta64データをDatetimeIndexに渡すとTypeErrorが発生するようになりました (GH 23539、GH 23937)。DatetimeIndexとタイムゾーンにint64値を渡すと、値は指定されたタイムゾーンの現地時刻ではなく、UTC のナノ秒タイムスタンプとして解釈されるようになりました (GH 24559)。DataFrame.groupby()に渡されるタプルは、単一のキーとしてのみ扱われるようになりました (GH 18314)。Index.containsが削除されました。代わりにkey in indexを使用してください (GH 30103)。intまたは整数配列の加減算は、Timestamp、DatetimeIndex、TimedeltaIndexでは許可されなくなりました。obj + nの代わりにobj + n * obj.freqを使用してください (GH 22535)。Series.ptpを削除しました (GH 21614)。Series.from_arrayを削除しました (GH 18258)。DataFrame.from_itemsを削除しました (GH 18458)。DataFrame.as_matrix、Series.as_matrixを削除しました (GH 18458)。Series.asobjectを削除しました (GH 18477)。DataFrame.as_blocks、Series.as_blocks、DataFrame.blocks、Series.blocksを削除しました (GH 17656)。pandas.Series.str.cat()は、join='left'を使用して、デフォルトでothersを揃えるようになりました (GH 27611)。pandas.Series.str.cat()は、リストライク*内*のリストライクを受け入れなくなりました (GH 27611)。Series.where()をCategoricaldtype (またはDataFrame.where()をCategorical列) で使用する場合、新しいカテゴリの設定は許可されなくなりました (GH 24114)。以前非推奨だった「start」、「end」、「periods」キーワードを
DatetimeIndex、TimedeltaIndex、およびPeriodIndexコンストラクタから削除しました。date_range()、timedelta_range()、およびperiod_range()を使用してください (GH 23919)。以前非推奨だった「verify_integrity」キーワードを
DatetimeIndexおよびTimedeltaIndexコンストラクタから削除しました (GH 23919)。以前非推奨だった「fastpath」キーワードを
pandas.core.internals.blocks.make_blockから削除しました (GH 19265)。以前非推奨だった「dtype」キーワードを
Block.make_block_same_class()から削除しました (GH 19434)。ExtensionArray._formatting_valuesを削除しました。代わりにExtensionArray._formatterを使用してください (GH 23601)。MultiIndex.to_hierarchicalを削除しました (GH 21613)。MultiIndex.labelsを削除しました。代わりにMultiIndex.codesを使用してください (GH 23752)。以前非推奨だった「labels」キーワードを
MultiIndexコンストラクタから削除しました。代わりに「codes」を使用してください (GH 23752)。MultiIndex.set_labelsを削除しました。代わりにMultiIndex.set_codes()を使用してください (GH 23752)。以前非推奨だった「labels」キーワードを
MultiIndex.set_codes()、MultiIndex.copy()、MultiIndex.drop()から削除しました。代わりに「codes」を使用してください (GH 23752)。レガシーHDF5形式のサポートを削除しました (GH 29787)。
dtypeエイリアス (例: 'datetime64[ns, UTC]') を
DatetimeTZDtypeに渡すことはできなくなりました。代わりにDatetimeTZDtype.construct_from_string()を使用してください (GH 23990)。以前非推奨だった「skip_footer」キーワードを
read_excel()から削除しました。代わりに「skipfooter」を使用してください (GH 18836)。read_excel()は、パラメータusecolsに整数値を受け入れなくなりました。代わりに、0 からusecolsまでの整数リストを渡してください (GH 23635)。以前非推奨だった「convert_datetime64」キーワードを
DataFrame.to_records()から削除しました (GH 18902)。IntervalIndex.from_intervalsは、IntervalIndexコンストラクタに移行するため削除しました (GH 19263)。DatetimeIndex.to_series()のデフォルトの「keep_tz」引数をNoneからTrueに変更しました (GH 23739)。api.types.is_periodおよびapi.types.is_datetimetzを削除しました (GH 23917)。pandasの0.16バージョン以前で作成された
Categoricalインスタンスを含むpickleを読み取る機能が削除されました (GH 27538)。pandas.tseries.plotting.tsplotを削除しました (GH 18627)。以前非推奨だった「reduce」および「broadcast」キーワードを
DataFrame.apply()から削除しました (GH 18577)。以前非推奨だった
pandas._testingのassert_raises_regex関数を削除しました (GH 29174)。以前非推奨だった
pandas.core.indexes.frozenのFrozenNDArrayクラスを削除しました (GH 29335)。以前非推奨だった「nthreads」キーワードを
read_feather()から削除しました。代わりに「use_threads」を使用してください (GH 23053)。Index.is_lexsorted_for_tupleを削除しました (GH 29305)。DataFrame.aggregate()、Series.aggregate()、core.groupby.DataFrameGroupBy.aggregate()、core.groupby.SeriesGroupBy.aggregate()、core.window.rolling.Rolling.aggregate()でのネストされた名前変更のサポートを削除しました (GH 29608)。Series.validを削除しました。代わりにSeries.dropna()を使用してください (GH 18800)。DataFrame.is_copy、Series.is_copyを削除しました (GH 18812)。DataFrame.get_ftype_counts、Series.get_ftype_countsを削除しました (GH 18243)。DataFrame.ftypes、Series.ftypes、Series.ftypeを削除しました (GH 26744)。Index.get_duplicatesを削除しました。代わりにidx[idx.duplicated()].unique()を使用してください (GH 20239)。Series.clip_upper、Series.clip_lower、DataFrame.clip_upper、DataFrame.clip_lowerを削除しました (GH 24203)。DatetimeIndex.freq、TimedeltaIndex.freq、またはPeriodIndex.freqを変更する機能を削除しました (GH 20772)。DatetimeIndex.offsetを削除しました (GH 20730)。DatetimeIndex.asobject、TimedeltaIndex.asobject、PeriodIndex.asobjectを削除しました。代わりにastype(object)を使用してください (GH 29801)。以前非推奨だった「order」キーワードを
factorize()から削除しました (GH 19751)。以前非推奨だった「encoding」キーワードを
read_stata()およびDataFrame.to_stata()から削除しました (GH 21400)。以前非推奨だった「raise_conflict」キーワードを
DataFrame.update()から削除しました。代わりに「errors」を使用してください (GH 23585)。以前非推奨だった「n」キーワードを
DatetimeIndex.shift()、TimedeltaIndex.shift()、PeriodIndex.shift()から削除しました。代わりに「periods」を使用してください (GH 22458)。以前非推奨だった「how」、「fill_method」、「limit」キーワードを
DataFrame.resample()から削除しました (GH 30139)。timedelta64[ns]dtype を持つSeries.fillna()またはDataFrame.fillna()に整数を渡すとTypeErrorが発生するようになりました (GH 24694)。DataFrame.dropna()に複数の軸を渡すことはサポートされなくなりました (GH 20995)。Series.nonzeroを削除しました。代わりにto_numpy().nonzero()を使用してください (GH 24048)。浮動小数点dtypeの
codesをCategorical.from_codes()に渡すことはサポートされなくなりました。代わりにcodes.astype(np.int64)を渡してください (GH 21775)。以前非推奨だった「pat」キーワードを
Series.str.partition()およびSeries.str.rpartition()から削除しました。代わりに「sep」を使用してください (GH 23767)。Series.putを削除しました (GH 27106)。Series.real、Series.imagを削除しました (GH 27106)。Series.to_dense、DataFrame.to_denseを削除しました (GH 26684)。Index.dtype_strを削除しました。代わりにstr(index.dtype)を使用してください (GH 27106)。Categorical.ravel()は、ndarrayではなくCategoricalを返すようになりました (GH 27199)。Numpyのufuncs (例:
np.subtract.outer) がSeriesオブジェクトに作用する「outer」メソッドはサポートされなくなり、NotImplementedErrorを発生させます (GH 27198)。Series.get_dtype_countsおよびDataFrame.get_dtype_countsを削除しました (GH 27145)。Categorical.take()のデフォルトの「fill_value」引数をTrueからFalseに変更しました (GH 20841)。Series.rolling().apply()、DataFrame.rolling().apply()、Series.expanding().apply()、およびDataFrame.expanding().apply()のraw引数のデフォルト値をNoneからFalseに変更しました (GH 20584)。Series.argmin()およびSeries.argmax()の非推奨の動作を削除しました。以前の動作については、Series.idxmin()およびSeries.idxmax()を使用してください (GH 16955)。tz引数を使用して、タイムゾーン対応のdatetime.datetimeまたはTimestampをTimestampコンストラクタに渡すと、ValueErrorが発生するようになりました (GH 23621)。Series.base、Index.base、Categorical.base、Series.flags、Index.flags、PeriodArray.flags、Series.strides、Index.strides、Series.itemsize、Index.itemsize、Series.data、Index.dataを削除しました (GH 20721)。Timedelta.resolution()を標準ライブラリのdatetime.timedelta.resolutionの動作と一致するように変更しました。以前の動作については、Timedelta.resolution_string()を使用してください (GH 26839)。Timestamp.weekday_name、DatetimeIndex.weekday_name、およびSeries.dt.weekday_nameを削除しました (GH 18164)。以前非推奨だった「errors」キーワードを
Timestamp.tz_localize()、DatetimeIndex.tz_localize()、およびSeries.tz_localize()から削除しました (GH 22644)。CategoricalDtypeのデフォルトの「ordered」引数をNoneからFalseに変更しました (GH 26336)。Series.set_axis()およびDataFrame.set_axis()は、最初の引数として「labels」を、オプションの名前付きパラメータとして「axis」を要求するようになりました (GH 30089)。to_msgpack、read_msgpack、DataFrame.to_msgpack、Series.to_msgpackを削除しました (GH 27103)。Series.compressを削除しました (GH 21930)。以前非推奨だった「fill_value」キーワードを
Categorical.fillna()から削除しました。代わりに「value」を使用してください (GH 19269)。以前非推奨だった「data」キーワードを
andrews_curves()から削除しました。代わりに「frame」を使用してください (GH 6956)。以前非推奨だった「data」キーワードを
parallel_coordinates()から削除しました。代わりに「frame」を使用してください (GH 6956)。以前非推奨だった「colors」キーワードを
parallel_coordinates()から削除しました。代わりに「color」を使用してください (GH 6956)。以前非推奨だった「verbose」および「private_key」キーワードを
read_gbq()から削除しました (GH 30200)。タイムゾーン対応の
SeriesおよびDatetimeIndexに対してnp.arrayおよびnp.asarrayを呼び出すと、タイムゾーン対応のTimestampのオブジェクト配列が返されるようになりました (GH 24596)。
パフォーマンス改善#
DataFrameの算術演算とスカラーとの比較演算のパフォーマンスが向上しました (GH 24990, GH 29853)。一意でない
IntervalIndexを使用したインデックス作成のパフォーマンスが向上しました (GH 27489)。MultiIndex.is_monotonicのパフォーマンスが向上しました (GH 27495)。binsがIntervalIndexの場合、cut()のパフォーマンスが向上しました (GH 27668)。methodが"spearman"の場合、DataFrame.corr()のパフォーマンスが向上しました (GH 28139)。置き換える値のリストが提供された場合、
DataFrame.replace()のパフォーマンスが向上しました (GH 28099)。ループを反復処理する代わりにベクトル化を使用することで、
DataFrame.select_dtypes()のパフォーマンスが向上しました (GH 28317)。Categorical.searchsorted()およびCategoricalIndex.searchsorted()のパフォーマンスが向上しました (GH 28795)。Categoricalとスカラーを比較する際、スカラーがカテゴリに見つからない場合のパフォーマンスが向上しました (GH 29750)。Categoricalの値が、特定のスカラーと同じ、大きい、または大きいかどうかのチェックのパフォーマンスが向上しました。この改善は、Categoricalがスカラーより小さい、または小さいか等しいかどうかをチェックする場合には存在しません (GH 29820)。Index.equals()およびMultiIndex.equals()のパフォーマンスが向上しました (GH 29134)。skipnaがTrueの場合、infer_dtype()のパフォーマンスが向上しました (GH 28814)。
バグ修正#
カテゴリカル#
fillna()が、値がカテゴリの値でない場合に正しいValueErrorメッセージを発生させることをアサートするテストを追加しました (GH 13628)。Categorical.astype()で、NaN値がintにキャストされる際に誤って処理されていたバグを修正しました (GH 28406)。DataFrame.reindex()をCategoricalIndexで使用すると、ターゲットに重複が含まれている場合に失敗し、ソースに重複が含まれている場合には失敗しないというバグがありました (GH 28107)。Categorical.astype()が拡張dtypeへのキャストを許可しないバグを修正しました (GH 28668)。Categorical.searchsorted()およびCategoricalIndex.searchsorted()が順序付けされていないカテゴリでも機能するようになりました (GH 21667)。DataFrame.to_parquet()またはread_parquet()を使用してparquetにラウンドトリップする際に、文字列型のCategorical dtypeが保持されることをアサートするテストを追加しました (GH 27955)。Categorical.remove_categories()のエラーメッセージを変更し、無効な削除を常にセットとして表示するようにしました (GH 28669)。日付型dtypedの
Seriesの日付アクセサを使用した場合、str.()/dt.()をその型のSeriesで使用した場合と同じ型のオブジェクトが返されませんでした。例えば、重複エントリを持つCategoricalでSeries.dt.tz_localize()にアクセスした場合、アクセサが重複をスキップしていました (GH 27952)。DataFrame.replace()およびSeries.replace()がカテゴリカルデータで誤った結果を返すバグを修正しました (GH 26988)。空のCategoricalで
Categorical.min()またはCategorical.max()を呼び出すとnumpy例外が発生するバグを修正しました (GH 30227)。次のメソッドは、
groupby(..., observed=False)を介して呼び出された場合でも、未観測のカテゴリの値を正しく出力するようになりました (GH 17605)。 *core.groupby.SeriesGroupBy.count()*core.groupby.SeriesGroupBy.size()*core.groupby.SeriesGroupBy.nunique()*core.groupby.SeriesGroupBy.nth()
日付時刻ライク#
Series.__setitem__()で、datetime64 dtypeのSeriesに挿入する際に、np.timedelta64("NaT")がnp.datetime64("NaT")に誤ってキャストされていたバグを修正しました (GH 27311)。基となるデータが読み取り専用の場合の
Series.dt()プロパティルックアップのバグを修正しました (GH 27529)。HDFStore.__getitem__で、Python 2で作成されたtz属性が誤って読み取られていたバグを修正しました (GH 26443)。to_datetime()で、エラー=”coerce”を指定して不正な形式のstrの配列を渡すと、誤ってValueErrorが発生する可能性があったバグを修正しました (GH 28299)。core.groupby.SeriesGroupBy.nunique()で、NaT値が一意な値の数と干渉していたバグを修正しました (GH 27951)。Timestampからnp.datetime64オブジェクトを減算すると、誤ってTypeErrorが発生していたバグを修正しました (GH 28286)。整数または整数dtypeの配列を
Timestampと加減算すると、ValueErrorではなくNullFrequencyErrorが発生するようになりました (GH 28268)。整数dtypeの
SeriesおよびDataFrameがnp.datetime64オブジェクトの加減算時にTypeErrorを発生させなかったバグを修正しました (GH 28080)。Series.astype()、Index.astype()、およびDataFrame.astype()が、整数dtypeへのキャスト時にNaTを処理できなかったバグを修正しました (GH 28492)。Weekwithweekdayで、無効な型を加減算する際にTypeErrorではなくAttributeErrorが誤って発生していたバグを修正しました (GH 28530)。'timedelta64[ns]'dtype を持つSeriesと演算する際のDataFrame算術演算のバグを修正しました (GH 28049)。core.groupby.generic.SeriesGroupBy.apply()で、元のDataFrameの列がdatetimeであり、列ラベルが標準の整数でない場合にValueErrorが発生するバグを修正しました (GH 28247)。pandas._config.localization.get_locales()で、locales -aがロケールリストをwindows-1252としてエンコードするバグを修正しました (GH 23638, GH 24760, GH 27368)。Series.var()がtimedelta64[ns]dtype で呼び出された場合にTypeErrorを発生させなかったバグを修正しました (GH 28289)。DatetimeIndex.strftime()およびSeries.dt.strftime()で、NaTがnp.nanではなく文字列'NaT'に変換されていたバグを修正しました (GH 29578)。誤った長さのブールマスクで datetime-like 配列をマスキングすると、
IndexErrorが発生しなかったバグを修正しました (GH 30308)。Timestamp.resolutionがクラス属性ではなくプロパティであったバグを修正しました (GH 29910)。pandas.to_datetime()で、Noneで呼び出された場合にNaTを返す代わりにTypeErrorが発生していたバグを修正しました (GH 30011)。pandas.to_datetime()で、cache=True(デフォルト) を使用した場合にdequeオブジェクトで失敗するバグを修正しました (GH 29403)。datetime64またはtimedelta64dtype のSeries.item()、DatetimeIndex.item()、およびTimedeltaIndex.item()が、TimestampまたはTimedeltaではなく整数を返していたバグを修正しました (GH 30175)。DatetimeIndexの加算で、非最適化されたDateOffsetを加算する際にタイムゾーン情報が誤って失われていたバグを修正しました (GH 30336)。DataFrame.drop()で、DatetimeIndexから存在しない値を削除しようとすると、混乱を招くエラーメッセージが表示されていたバグを修正しました (GH 30399)。DataFrame.append()で、新しいデータのタイムゾーン対応が削除されていたバグを修正しました (GH 30238)。Series.cummin()およびSeries.cummax()で、タイムゾーン対応のdtypeを持つ場合にタイムゾーンが誤って削除されていたバグを修正しました (GH 15553)。DatetimeArray、TimedeltaArray、およびPeriodArrayで、インプレース加減算が実際にはインプレースで動作しなかったバグを修正しました (GH 24115)。pandas.to_datetime()で、IntegerArrayを格納するSeriesとともに呼び出された場合に、Seriesを返す代わりにTypeErrorが発生していたバグを修正しました (GH 30050)。date_range()で、カスタム営業時間をfreqとして指定し、periodsの数が与えられた場合のバグを修正しました (GH 30593)。PeriodIndexの比較で、整数が誤ってPeriodオブジェクトにキャストされ、Periodの比較動作と一貫性がなかったバグを修正しました (GH 30722)。DatetimeIndex.insert()で、タイムゾーン対応のTimestampをタイムゾーン非対応のDatetimeIndexに挿入しようとすると、TypeErrorではなくValueErrorが発生していたバグを修正しました (GH 30806)。
Timedelta#
np.datetime64オブジェクトからTimedeltaIndexまたはTimedeltaArrayを減算する際のバグを修正しました (GH 29558)。
タイムゾーン#
数値#
列がゼロの
DataFrameでDataFrame.quantile()が誤って例外を発生させていたバグを修正しました (GH 23925)。オブジェクトdtypeと
complexエントリを持つDataFrameの柔軟な不等式比較メソッド (DataFrame.lt()、DataFrame.le()、DataFrame.gt()、DataFrame.ge()) が、Seriesの対応するものと同様にTypeErrorを発生させなかったバグを修正しました (GH 28079)。DataFrameの論理演算 (&、|、^) が、NA値を埋めることでSeriesの動作と一致しなかったバグを修正しました (GH 28741)。DataFrame.interpolate()で、軸を名前で指定すると、変数が割り当てられる前に参照されるバグを修正しました (GH 29142)。Series.var()で、NULL可能な整数dtypeのシリーズでddof引数が渡されなかった場合に正しい値が計算されなかったバグを修正しました (GH 29128)。frac> 1 とreplace= False を使用した場合のエラーメッセージを改善しました (GH 27451)。数値インデックスのバグにより、
Int64Index、UInt64Index、またはFloat64Indexを無効なdtype (例: datetime-like) でインスタンス化できる可能性があったバグを修正しました (GH 29539)。UInt64Indexで、np.uint64範囲の値を持つリストから構築する際に精度が失われるバグを修正しました (GH 29526)。NumericIndex構築のバグにより、np.uint64範囲の整数を使用してインデックスを作成した場合にインデックス作成が失敗する原因となっていたバグを修正しました (GH 28023)。NumericIndex構築のバグにより、np.uint64範囲の整数を使用してDataFrameをインデックス作成した場合に、UInt64IndexがFloat64Indexにキャストされていたバグを修正しました (GH 28279)。Series.interpolate()で、`index` メソッドをソートされていないインデックスで使用すると、以前は誤った結果が返されていたバグを修正しました (GH 21037)。DataFrame.round()で、IntervalIndex列のCategoricalIndexを持つDataFrameが誤ってTypeErrorを発生させていたバグを修正しました (GH 30063)。インデックスが重複している場合に、
Series.pct_change()およびDataFrame.pct_change()のバグを修正しました (GH 30463)。DataFrameの累積演算 (例: cumsum, cummax) が誤ってobject-dtypeにキャストされていたバグを修正しました (GH 19296)。DataFrame.diffで、列の1つがNULL可能な整数dtypeであった場合にIndexErrorが発生していたバグを修正しました (GH 30967)。
変換#
文字列#
空の
SeriesでSeries.str.isalnum()(および他の「ismethods」) を呼び出すと、boolではなくobjectdtypeが返されていたバグを修正しました (GH 29624)。
Interval#
IntervalIndex.get_indexer()で、CategoricalまたはCategoricalIndexのtargetが誤ってTypeErrorを発生させていたバグを修正しました (GH 30063)。pandas.core.dtypes.cast.infer_dtype_from_scalarで、pandas_dtype=Trueを渡してもIntervalDtypeが推論されなかったバグを修正しました (GH 30337)。Seriesコンストラクタで、IntervalオブジェクトのlistからSeriesを構築すると、IntervalDtypeではなくobjectdtype が生成されていたバグを修正しました (GH 23563)。IntervalDtypeで、kind属性が"O"ではなくNoneに誤って設定されていたバグを修正しました (GH 30568)。Intervalデータを持つ
IntervalIndex、IntervalArray、およびSeriesにおけるバグで、等値比較が不正でした(GH 24112)。
インデックス付け#
逆スライサーを使った代入におけるバグ(GH 26939)。
DataFrame.explode()において、インデックスに重複がある場合にフレームが複製されるバグ(GH 28010)。PeriodIndex()をPeriodを含む別の種類のインデックスで再インデックス付けする際のバグ(GH 28323)(GH 28337)。.locを使用したnumpyの非ナノ秒日付時刻型による列の代入を修正(GH 27395)。Float64Index.astype()において、整数dtypeにキャストする際にnp.infが適切に処理されないバグ(GH 28475)。Index.union()は、左側に重複が含まれる場合に失敗する可能性がありました(GH 28257)。インデックスが文字列以外のカテゴリを持つ
CategoricalIndexである場合に.locでインデックス付けが機能しないバグ(GH 17569、GH 30225)。Index.get_indexer_non_unique()は、文字列インデックス内の整数を検索する場合など、一部のケースでTypeErrorで失敗する可能性がありました(GH 28257)。Float64Index.get_loc()がKeyErrorの代わりに誤ってTypeErrorを発生させるバグ(GH 29189)。1行のDataFrameでCategorical値を設定する際に、
DataFrame.loc()のdtypeが不正になるバグ(GH 25495)。MultiIndex.get_loc()が、入力に欠損値が含まれる場合に欠損値を見つけられないバグ(GH 19132)。Series.__setitem__()において、新しいデータの長さがTrue値の数と一致し、新しいデータがSeriesまたはnp.arrayでない場合に、ブールインデクサーで値が誤って代入されるバグ(GH 30567)。PeriodIndexでインデックス付けする際に、年を表す整数を誤って受け入れるバグ。代わりにser.loc[2007]ではなく、例えばser.loc["2007"]を使用してください(GH 30763)。
欠損値#
MultiIndex#
MultiIndexのコンストラクターは、verify_integrityパラメータがTrue(デフォルト)の場合、与えられたsortorderが実際のlexsort_depthと互換性があることを検証します(GH 28735)。SeriesおよびMultiIndexの
.dropは、指定されたレベルにラベルがない場合に例外を発生させます(GH 8594)。
IO#
read_csv()は、Python csvエンジンを使用する際にバイナリモードのファイルバッファを受け入れるようになりました(GH 23779)。DataFrame.to_json()において、Tupleを列またはインデックス値として使用し、orient="columns"またはorient="index"を使用した場合に、不正なJSONが生成されるバグ(GH 20500)。無限大の解析を改善しました。
read_csv()は、Infinity、+Infinity、-Infinityを浮動小数点値として解釈するようになりました(GH 10065)。DataFrame.to_csv()において、na_repの長さがテキスト入力データよりも短い場合に値が切り捨てられるバグ(GH 25099)。DataFrame.to_string()において、フルコンテンツを出力する代わりに表示オプションを使用して値が切り捨てられるバグ(GH 9784)。DataFrame.to_json()において、日付時刻列ラベルがorient="table"でISO形式で出力されないバグ(GH 28130)。DataFrame.to_parquet()において、ファイルがまだ存在しない場合にengine='fastparquet'でGCSに書き込むと失敗するバグ(GH 28326)。read_hdf()が例外発生時に開いていないストアを閉じるバグ(GH 28699)。DataFrame.read_json()において、orient="index"を使用した場合に順序が維持されないバグ(GH 28557)。DataFrame.to_html()において、formatters引数の長さが検証されないバグ(GH 28469)。DataFrame.read_excel()において、engine='ods'でsheet_name引数が存在しないシートを参照した場合のバグ(GH 27676)。pandas.io.formats.style.Styler()の浮動小数点値の書式設定が小数点を正しく表示しないバグ(GH 13257)。DataFrame.to_html()において、formatters=<list>とmax_colsを同時に使用した場合のバグ(GH 25955)。Styler.background_gradient()がdtypeInt64で機能しないバグ(GH 28869)。DataFrame.to_clipboard()がipythonで確実に機能しないバグ(GH 22707)。read_json()において、デフォルトエンコーディングがutf-8に設定されないバグ(GH 29565)。PythonParserにおいて、decimalフィールドを処理する際にstrとbytesが混在するバグ(GH 29650)。read_gbq()は、データのダウンロード中にプログレスバーを表示するためにprogress_bar_typeを受け入れるようになりました(GH 29857)。pandas.io.json.json_normalize()において、record_pathで指定された場所の欠損値がTypeErrorを発生させるバグ(GH 30148)。read_excel()はバイナリデータを受け入れるようになりました(GH 15914)。read_csv()において、Cエンジンでのエンコーディング処理が文字列utf-16のみに限定されていたバグ(GH 24130)。
プロット#
Series.plot()がブール値をプロットできないバグ(GH 23719)。DataFrame.plot()が、行がない場合にプロットできないバグ(GH 27758)。DataFrame.plot()が、同じ軸に複数のシリーズをプロットする際に不正な凡例マーカーを生成するバグ(GH 18222)。DataFrame.plot()において、kind='box'でデータに日付時刻またはtimedeltaデータが含まれている場合のバグ。これらの型は自動的にドロップされるようになりました(GH 22799)。DataFrame.plot.line()およびDataFrame.plot.area()がx軸のxlimを誤って生成するバグ(GH 27686、GH 25160、GH 24784)。DataFrame.boxplot()がDataFrame.plot.box()のようにcolorパラメータを受け付けないバグ(GH 26214)。DataFrame.plot.bar()でxticks引数が無視されるバグ(GH 14119)。set_option()は、オプションが設定されたとき(プロットが作成されたときではない)に、'plotting.backend'に提供されたプロットバックエンドがバックエンドを実装していることを検証するようになりました(GH 28163)。DataFrame.plot()は、1つのセッションでバックエンドを切り替えることを可能にするbackendキーワード引数を受け入れるようになりました(GH 28619)。非カラーのスタイルに対してカラー検証が誤って発生するバグ(GH 29122)。
DataFrame.plot.scatter()がobjectsおよびdatetime型のデータをプロットできるようにしました(GH 18755、GH 30391)。DataFrame.hist()において、xrot=0がbyおよびサブプロットで機能しないバグ(GH 30288)。
GroupBy/resample/rolling#
core.groupby.DataFrameGroupBy.apply()が、関数がIndexを返す場合に単一のグループからの出力のみを表示するバグ(GH 28652)。DataFrame.groupby()において、複数のグループがあり、いずれかのグループがすべてのNA値を含んでいた場合にIndexErrorが発生するバグ(GH 20519)。Resampler.size()およびResampler.count()が、空のSeriesまたはDataFrameと共に使用された場合に誤ったdtypeを返すバグ(GH 28427)。DataFrame.rolling()が、axis=1のときに日付時刻でのローリングを許可しないバグ(GH 28192)。DataFrame.rolling()が、マルチインデックスレベルでのローリングを許可しないバグ(GH 15584)。DataFrame.rolling()が、単調減少する時間インデックスでのローリングを許可しないバグ(GH 19248)。DataFrame.groupby()が、axis=1のときに列名による選択を提供しないバグ(GH 27614)。core.groupby.DataFrameGroupby.agg()が、名前付き集約でラムダ関数を使用できないバグ(GH 27519)。DataFrame.groupby()が、カテゴリカル列でグループ化する際に列名情報を失うバグ(GH 28787)。DataFrame.groupby()およびSeries.groupby()の名前付き集約で、重複する入力関数によるエラーがなくなりました。以前は、同じ関数が同じ列に適用された場合にエラーが発生しましたが、新しい割り当てられた名前が異なる場合は許可されるようになりました(GH 28426)。core.groupby.SeriesGroupBy.value_counts()は、Grouperが空のグループを作成する場合でも処理できるようになりました(GH 28479)。core.window.rolling.Rolling.quantile()が、groupby内で使用された場合にinterpolationキーワード引数を無視するバグ(GH 28779)。DataFrame.groupby()において、any、all、nuniqueおよび変換関数が重複する列ラベルを誤って処理するバグ(GH 21668)。core.groupby.DataFrameGroupBy.agg()において、タイムゾーンを考慮したdatetime64列の結果が誤って元のdtypeにキャストされるバグ(GH 29641)。DataFrame.groupby()において、axis=1を使用し、単一レベルの列インデックスを持つ場合のバグ(GH 30208)。DataFrame.groupby()において、axis=1でnuniqueを使用した場合のバグ(GH 30253)。DataFrameGroupBy.quantile()およびSeriesGroupBy.quantile()において、複数のリスト状q値と整数列名を持つ場合のバグ(GH 30289)。DataFrameGroupBy.pct_change()およびSeriesGroupBy.pct_change()において、fill_methodがNoneの場合にTypeErrorが発生するバグ(GH 30463)。Rolling.count()およびExpanding.count()引数において、min_periodsが無視されるバグ(GH 26996)。
再整形#
DataFrame.apply()において、空のDataFrameで不正な出力が発生するバグ(GH 28202、GH 21959)。DataFrame.stack()が、MultiIndexを作成する際に非ユニークなインデックスを正しく処理しないバグ(GH 28301)。pivot_table()が、margins=Trueおよびaggfunc='mean'の場合に正しい型floatを返さないバグ(GH 24893)。merge_asof()が、tolerancekwargにdatetime.timedeltaを使用できないバグ(GH 28098)。merge_asof()で公差値を使用する場合に、すべての整数dtypeが使用できるように修正。以前は、int64型以外のすべての型で誤ったMergeErrorが発生していました(GH 28870)。get_dummies()において、columnsがリスト状の値でない場合のより良いエラーメッセージ(GH 28383)。Index.join()において、MultiIndex名順序の不一致により無限再帰エラーが発生するバグ(GH 25760、GH 28956)。Series.pct_change()において、固定された頻度を指定するとValueErrorがスローされるバグ(GH 28664)。DataFrame.equals()が、2つのDataFrameが異なる順序で同じ列を持つ場合に誤ってTrueを返すバグ(GH 28839)。DataFrame.replace()において、非数値の置換子のdtypeが尊重されないバグ(GH 26632)。melt()において、id_varsまたはvalue_varsに混合文字列と数値を提供した場合に、誤ってValueErrorが発生するバグ(GH 29718)。各列が同じ拡張dtypeである
DataFrameを転置する際に、dtypeが保持されるようになりました(GH 30091)。merge_asof()において、tz対応のleft_indexとtz対応の列に対するright_onをマージするバグ(GH 29864)。cut()およびqcut()において、labels=Trueの場合のエラーメッセージとドキュメンテーションを改善しました(GH 13318)。DataFrame.unstack()に、レベルのリストを持つfill_naパラメータが欠落しているバグ(GH 30740)。
スパース#
ExtensionArray#
その他#
set_option()を使用してdisplay.precision、display.max_rows、またはdisplay.max_columnsをNoneまたは正の整数以外のものに設定しようとすると、ValueErrorが発生するようになりました(GH 23348)。DataFrame.replace()でネストされた辞書に重複するキーを指定しても、エラーは発生しなくなり、フラットな辞書と同じ動作になりました(GH 27660)。DataFrame.to_csv()およびSeries.to_csv()は、compression引数として辞書を受け入れるようになりました。キー'method'は圧縮方法であり、圧縮方法が'zip'の場合は他のキーが追加の圧縮オプションとなります(GH 26023)。Series.diff()において、ブールシリーズが誤ってTypeErrorを発生させるバグ(GH 17294)。Series.append()は、Seriesのタプルが渡された場合にTypeErrorを発生させなくなりました(GH 28410)。0次元配列で
pandas.libs._json.encode()を呼び出した際の破損したエラーメッセージを修正しました(GH 18878)。DataFrame.query()およびDataFrame.eval()でのバックティック引用は、数字で始まる名前、Pythonのキーワード、または単一文字演算子を使用する名前のような無効な識別子を使用できるようになりました(GH 27017)。pd.core.util.hashing.hash_pandas_objectにおいて、タプルを含む配列がハッシュ不可能として誤って扱われるバグ(GH 28969)。DataFrame.append()において、空のリストで追加する際にIndexErrorが発生するバグ(GH 28769)。AbstractHolidayCalendarが2030年以降の年に対して正しい結果を返すように修正しました(現在は2200年まで対応)(GH 27790)。IntegerArrayが、0で除算する操作でNaNではなくinfを返すバグを修正しました(GH 27398)。IntegerArrayのpow演算において、もう一方の値が0または1の場合のバグを修正しました(GH 29997)。Series.count()が、use_inf_as_naが有効な場合にエラーを発生させるバグ(GH 29478)。DataFrame.to_csv()において、dtype="string"のシリーズとna_repが指定された場合に、na_repが2文字に切り捨てられるバグ(GH 29975)。DataFrame.itertuples()が、255列のデータフレームに対してnamedtupleを使用できるかどうかを誤って判断するバグ(GH 28282)。ExtensionArrayの実装に対して、
testing.assert_series_equal()でネストされたNumPyobject配列を処理するようにしました(GH 30841)。
貢献者#
このリリースには、合計308名の方々がパッチを貢献しました。「+」が付いている方は、今回初めてパッチを貢献されました。
Aaditya Panikath +
Abdullah İhsan Seçer
Abhijeet Krishnan +
Adam J. Stewart
Adam Klaum +
Addison Lynch
Aivengoe +
Alastair James +
アルバート・ビラノバ・デル・モラル
Alex Kirko +
Alfredo Granja +
Allen Downey
Alp Arıbal +
Andreas Buhr +
Andrew Munch +
Andy
Angela Ambroz +
Aniruddha Bhattacharjee +
Ankit Dhankhar +
Antonio Andraues Jr +
Arda Kosar +
Asish Mahapatra +
Austin Hackett +
Avi Kelman +
AyowoleT +
Bas Nijholt +
Ben Thayer
Bharat Raghunathan
Bhavani Ravi
Bhuvana KA +
Big Head
Blake Hawkins +
Bobae Kim +
Brett Naul
Brian Wignall
Bruno P. Kinoshita +
Bryant Moscon +
Cesar H +
Chris Stadler
Chris Zimmerman +
クリストファー・ウィーラン
Clemens Brunner
Clemens Tolboom +
Connor Charles +
Daniel Hähnke +
ダニエル・サクストン
Darin Plutchok +
Dave Hughes
David Stansby
DavidRosen +
Dean +
Deepan Das +
Deepyaman Datta
DorAmram +
Dorothy Kabarozi +
Drew Heenan +
Eliza Mae Saret +
Elle +
Endre Mark Borza +
Eric Brassell +
Eric Wong +
Eunseop Jeong +
Eyden Villanueva +
Felix Divo
ForTimeBeing +
Francesco Truzzi +
Gabriel Corona +
Gabriel Monteiro +
Galuh Sahid +
Georgi Baychev +
Gina
GiuPassarelli +
Grigorios Giannakopoulos +
Guilherme Leite +
Guilherme Salomé +
Gyeongjae Choi +
Harshavardhan Bachina +
Harutaka Kawamura +
Hassan Kibirige
Hielke Walinga
Hubert
Hugh Kelley +
Ian Eaves +
Ignacio Santolin +
Igor Filippov +
アーブ・ラスティッグ
Isaac Virshup +
Ivan Bessarabov +
JMBurley +
Jack Bicknell +
Jacob Buckheit +
Jan Koch
Jan Pipek +
Jan Škoda +
Jan-Philip Gehrcke
Jasper J.F. van den Bosch +
Javad +
ジェフ・リーバック
ジェレミー・シェンデル
Jeroen Kant +
Jesse Pardue +
Jethro Cao +
Jiang Yue
Jiaxiang +
Jihyung Moon +
Jimmy Callin
Jinyang Zhou +
Joao Victor Martinelli +
Joaq Almirante +
John G Evans +
John Ward +
Jonathan Larkin +
Joris Van den Bossche
Josh Dimarsky +
Joshua Smith +
Josiah Baker +
Julia Signell +
Jung Dong Ho +
Justin Cole +
ジャスティン・ジェン
Kaiqi Dong
Karthigeyan +
Katherine Younglove +
Katrin Leinweber
Kee Chong Tan +
Keith Kraus +
Kevin Nguyen +
ケビン・シェパード
Kisekka David +
Koushik +
Kyle Boone +
Kyle McCahill +
Laura Collard, PhD +
LiuSeeker +
Louis Huynh +
Lucas Scarlato Astur +
Luiz Gustavo +
Luke +
Luke Shepard +
MKhalusova +
Mabel Villalba
Maciej J +
Mak Sze Chun
Manu NALEPA +
Marc
Marc Garcia
Marco Gorelli +
Marco Neumann +
Martin Winkel +
Martina G. Vilas +
Mateusz +
Matthew Roeschke
Matthew Tan +
Max Bolingbroke
Max Chen +
MeeseeksMachine
Miguel +
MinGyo Jung +
Mohamed Amine ZGHAL +
Mohit Anand +
MomIsBestFriend +
Naomi Bonnin +
Nathan Abel +
Nico Cernek +
Nigel Markey +
Noritada Kobayashi +
Oktay Sabak +
Oliver Hofkens +
Oluokun Adedayo +
Osman +
Oğuzhan Öğreden +
Pandas Development Team +
Patrik Hlobil +
Paul Lee +
Paul Siegel +
Petr Baev +
ピエトロ・バティストン
Prakhar Pandey +
Puneeth K +
Raghav +
Rajat +
Rajhans Jadhao +
Rajiv Bharadwaj +
Rik-de-Kort +
Roei.r
Rohit Sanjay +
Ronan Lamy +
Roshni +
Roymprog +
Rushabh Vasani +
Ryan Grout +
Ryan Nazareth
Samesh Lakhotia +
Samuel Sinayoko
Samyak Jain +
Sarah Donehower +
Sarah Masud +
Saul Shanabrook +
Scott Cole +
SdgJlbl +
Seb +
Sergei Ivko +
Shadi Akiki
Shorokhov Sergey
Siddhesh Poyarekar +
Sidharthan Nair +
Simon Gibbons
Simon Hawkins
Simon-Martin Schröder +
Sofiane Mahiou +
Sourav kumar +
Souvik Mandal +
Soyoun Kim +
Sparkle Russell-Puleri +
Srinivas Reddy Thatiparthy (శ్రీనివాస్ రెడ్డి తాటిపర్తి)
Stuart Berg +
Sumanau Sareen
Szymon Bednarek +
Tambe Tabitha Achere +
Tan Tran
Tang Heyi +
Tanmay Daripa +
Tanya Jain
テルジ・ピーターセン
Thomas Li +
Tirth Jain +
Tola A +
Tom Augspurger
Tommy Lynch +
Tomoyuki Suzuki +
Tony Lorenzo
Unprocessable +
Uwe L. Korn
Vaibhav Vishal
Victoria Zdanovskaya +
Vijayant +
Vishwak Srinivasan +
WANG Aiyong
Wenhuan
Wes McKinney
Will Ayd
Will Holmgren
ウィリアム・エイド
William Blan +
Wouter Overmeire
Wuraola Oyewusi +
YaOzI +
Yash Shukla +
Yu Wang +
Yusei Tahara +
alexander135 +
alimcmaster1
avelineg +
bganglia +
bolkedebruin
bravech +
chinhwee +
cruzzoe +
dalgarno +
daniellebrown +
danielplawrence
est271 +
francisco souza +
ganevgv +
garanews +
ジーエフヤング
h-vetinari
hasnain2808 +
ianzur +
jalbritt +
jbrockmendel
jeschwar +
jlamborn324 +
joy-rosie +
kernc
killerontherun1
krey +
lexy-lixinyu +
lucyleeow +
lukasbk +
maheshbapatu +
mck619 +
nathalier
naveenkaushik2504 +
nlepleux +
nrebena
ohad83 +
pilkibun
pqzx +
proost +
pv8493013j +
qudade +
rhstanton +
rmunjal29 +
sangarshanan +
sardonick +
saskakarsi +
shaido987 +
ssikdar1
steveayers124 +
tadashigaki +
timcera +
tlaytongoogle +
tobycheese
tonywu1999 +
tsvikas +
yogendrasoni +
zys5945 +