バージョン 0.7.3 (2012年4月12日)#
これは 0.7.2 からのマイナーリリースで、多くのマイナーバグを修正し、いくつかの素晴らしい新機能を追加しています。また、注意すべきいくつかの API 変更点もあります。これらは多くのユーザーに影響を与えるべきものではなく、動作の変更を伴うものの、我々はこれらを「バグ修正」と呼ぶ傾向にあります。完全なリストについては、完全なリリースノートまたは GitHub のイシュートラッカーを参照してください。
新機能#
新しい固定幅ファイルリーダー、
read_fwf散布図行列を作成するための新しいscatter_matrix関数
from pandas.tools.plotting import scatter_matrix
scatter_matrix(df, alpha=0.2) # noqa F821
Series および DataFrame の
plotメソッドに、積み上げ棒グラフのためのstacked引数を追加。
df.plot(kind="bar", stacked=True) # noqa F821
df.plot(kind="barh", stacked=True) # noqa F821
DataFrame.plotおよびSeries.plotに、ログxおよびyのスケールオプションを追加尖度を計算するための
kurtメソッドを Series および DataFrame に追加
NAブール比較APIの変更#
非数値 Series での NA 値 (通常 NaN または None として表現される) の処理方法に関するいくつかの変更を元に戻しました。
In [1]: series = pd.Series(["Steve", np.nan, "Joe"])
In [2]: series == "Steve"
Out[2]:
0 True
1 False
2 False
Length: 3, dtype: bool
In [3]: series != "Steve"
Out[3]:
0 False
1 True
2 True
Length: 3, dtype: bool
比較において、NA / NaN は != の場合を除き、常に False として扱われます。!= の場合は True です。NA データが存在する場合のブール演算、特に否定演算には「細心の注意」を払ってください。これが心配な場合は、ブール配列演算に明示的な NA フィルターを追加することをお勧めします。
In [4]: mask = series == "Steve"
In [5]: series[mask & series.notnull()]
Out[5]:
0 Steve
Length: 1, dtype: object
比較において NA を伝播させることは、一部のユーザーにとっては正しい動作のように思えるかもしれませんが(純粋に技術的な観点から言えば、これが正しいと主張することもできます)、数値配列を含むすべての場所で NA を伝播させると、ユーザーにとって多くの問題を引き起こすという評価が下されました。そのため、「実用性が純粋さに勝る」というアプローチが取られました。この問題は将来的に再検討される可能性があります。
その他の API の変更#
グループ化された Series に対して apply を呼び出す場合、戻り値も Series になります。これは DataFrame の groupby の動作とより一貫性を持たせるためです。
In [6]: df = pd.DataFrame(
...: {
...: "A": ["foo", "bar", "foo", "bar", "foo", "bar", "foo", "foo"],
...: "B": ["one", "one", "two", "three", "two", "two", "one", "three"],
...: "C": np.random.randn(8),
...: "D": np.random.randn(8),
...: }
...: )
...:
In [7]: df
Out[7]:
A B C D
0 foo one 0.469112 -0.861849
1 bar one -0.282863 -2.104569
2 foo two -1.509059 -0.494929
3 bar three -1.135632 1.071804
4 foo two 1.212112 0.721555
5 bar two -0.173215 -0.706771
6 foo one 0.119209 -1.039575
7 foo three -1.044236 0.271860
[8 rows x 4 columns]
In [8]: grouped = df.groupby("A")["C"]
In [9]: grouped.describe()
Out[9]:
count mean std min 25% 50% 75% max
A
bar 3.0 -0.530570 0.526860 -1.135632 -0.709248 -0.282863 -0.228039 -0.173215
foo 5.0 -0.150572 1.113308 -1.509059 -1.044236 0.119209 0.469112 1.212112
[2 rows x 8 columns]
In [10]: grouped.apply(lambda x: x.sort_values()[-2:]) # top 2 values
Out[10]:
A
bar 1 -0.282863
5 -0.173215
foo 0 0.469112
4 1.212112
Name: C, Length: 4, dtype: float64
貢献者#
このリリースには合計15名がパッチを貢献しました。名前に「+」が付いている方は、初めてパッチを貢献された方です。
エイブラハム・フラックスマン +
Adam Klein
アンドレアス H. +
Chang She
Dieter Vandenbussche
ジャック・クヴァム +
K.-マイケル・アイ +
カミル・キジール +
マーティン・ブレイス +
スキッパー・シーボールド
Thomas Kluyver
Wes McKinney
Wouter Overmeire
ヤロスラフ・ハルチェンコ
lgautier +