2017-02-28 2 views
0

PandasのDataFrameの場合、最初の5つの値と最後の5つの値の両方を選択するにはどうすればよいですか?最初の牽引行と最後の牽引行を表示する方法の例python pandasが頭と尾の両方を選択

In [11]: df 
Out[11]: 
     A B C 
2012-11-29 0 0 0 
2012-11-30 1 1 1 
2012-12-01 2 2 2 
2012-12-02 3 3 3 
2012-12-03 4 4 4 
2012-12-04 5 5 5 
2012-12-05 6 6 6 
2012-12-06 7 7 7 
2012-12-07 8 8 8 
2012-12-08 9 9 9 

については ?

+0

と同じであるタイプdf.head().append(df.tail())

と同じです入力することができますあなたが最初の5つの値と最後の5つの値を選択したいと述べているとします。 r個々の値?希望の出力を表示してください – EdChum

答えて

4

あなたはnumpy.r_ilocを使用することができます。

print (np.r_[0:2, -2:0]) 
[ 0 1 -2 -1] 

df = df.iloc[np.r_[0:2, -2:0]] 
print (df) 
      A B C 
2012-11-29 0 0 0 
2012-11-30 1 1 1 
2012-12-07 8 8 8 
2012-12-08 9 9 9 

df = df.iloc[np.r_[0:4, -4:0]] 
print (df) 
      A B C 
2012-11-29 0 0 0 
2012-11-30 1 1 1 
2012-12-01 2 2 2 
2012-12-02 3 3 3 
2012-12-05 6 6 6 
2012-12-06 7 7 7 
2012-12-07 8 8 8 
2012-12-08 9 9 9 
+0

ありがとう、それは私が欲しかった! –

4

あなたは5 5最初と最後を取得しdf.head(5)df.tail(5)を使用することができます。 オプションで、新しいデータフレームとappend()頭と尾を作成することができます。

new_df = df.tail(5) 
new_df = new_df.append(df.head(5)) 
1

あなたができるdf.head(2)及びdf.tail(2)

0

小型の簡単な関数使用しています。

def ends(df, x=5): 
    return df.head(x).append(df.tail(x)) 

そしてそうのように使用します。

df = pd.DataFrame(np.random.rand(15,6)) 
ends(df,2) 

私は実際に私はそれを考えて、このあまり使用パンダに追加するのに最適な機能です。

0

Linas Fxに関連しています。

pd.DataFrame.less = lambda df, n=10: df.head(n//2).append(df.tail(n//2)) 

の下に定義

その後、あなただけdf.less()

それはあなたがdf.less(2)を入力した場合、結果はあなたの質問は、「doesnのdf.head(1).append(df.tail(1))

+0

フォーマットを行う – Billa

関連する問題