web-dev-qa-db-ja.com

pandas series in python

pandasデータフレームから2つの列を減算することによって生成されたシリーズデータ型があります。

Rのx[-1]になるシリーズから最初の要素を削除したいのですが、np配列クラスで機能させることができますが、シリーズクラスは機能しません。

13
jay2020

integerベースのスライスの使用は機能するはずです ---(ドキュメントを参照 ):

s.iloc[1:]

dropではなくsliceを使用したい場合は、組み込みのdropメソッドを使用できます。

s.drop(s.index[0])

複数のアイテムを削除するには、list of indexの位置を含めます。

s.drop(s.index[[0, 2, 4]])

またはslice

s.drop(s.index[1: 4])
19
Stefan

Pythonには、Rのようにポジションを切り出す方法がありません。最初または最後の要素のみを削除する必要がある場合、以前に投稿されたソリューション:s.iloc[1:]はおそらく最高です。複数の要素、またはシリーズの途中の要素を削除する必要がある場合は、以下を使用して削除できます。

In [29]: x = pd.Series(np.random.randn(10))

In [34]: x[~x.index.isin([0, 3, 4])]
Out[34]: 1    0.884089
         2    0.921271
         5   -0.847967
         6   -0.088892
         7   -0.765241
         8   -0.084489
         9   -0.581152
         dtype: float64

この場合、0、3、4の位置を削除しました。

これは少し面倒なので、前の解決策が必要なものに最適かもしれないと私が言ったように、これはいくつかの追加機能を持っています。

このソリューションは、インデックスが数値であり、0から始まる連続している場合にのみ機能することに注意してください。

1
johnchase