データフレームの頭と尾からpandas.Dataframeからk
(言いますと、100
)のエントリを取得するにはどうすればよいですか? 私は2つの別々のステップとマージ操作をお勧めしますが、それは退屈なようです。より良い方法がありますか? df.iloc[:100,:-100]
を使用しようとしましたが、最初の100レコードしか返されません。pandasは頭と尾からk個のエントリを取る
numpy.r_
と
iloc
を使用することができます
データフレームの頭と尾からpandas.Dataframeからk
(言いますと、100
)のエントリを取得するにはどうすればよいですか? 私は2つの別々のステップとマージ操作をお勧めしますが、それは退屈なようです。より良い方法がありますか? df.iloc[:100,:-100]
を使用しようとしましたが、最初の100レコードしか返されません。pandasは頭と尾からk個のエントリを取る
numpy.r_
と
iloc
を使用することができます
:
N = 3
df = df.iloc[np.r_[0:N, -N:0]]
サンプル:
np.random.seed(45)
df = pd.DataFrame(np.random.randint(10, size=(10,5)))
print (df)
0 1 2 3 4
0 3 0 5 3 4
1 9 8 1 5 9
2 6 8 7 8 5
3 2 8 1 6 4
4 8 4 6 4 9
5 1 6 8 8 1
6 6 0 4 9 8
7 0 9 2 6 7
8 0 0 2 9 2
9 6 0 9 6 0
N = 3
df = df.iloc[np.r_[0:N, -N:0]]
print (df)
0 1 2 3 4
0 3 0 5 3 4
1 9 8 1 5 9
2 6 8 7 8 5
7 0 9 2 6 7
8 0 0 2 9 2
9 6 0 9 6 0
あなたはrange
N = 3
df.iloc[range(0, N) + range(-N, 0)]
Dでiloc
を使用することができます私が手
In [200]: df = pd.DataFrame(np.random.randn(10, 2))
In [201]: df
Out[201]:
0 1
0 -1.034025 0.222752
1 0.102861 -0.827097
2 1.218721 0.397002
3 0.378780 1.903993
4 0.931718 -1.086045
5 1.608149 -0.233175
6 -1.399926 -2.218517
7 -0.411787 0.309623
8 -0.493428 -1.834097
9 -0.797647 -0.085315
In [202]: N = 3
In [203]: df.iloc[range(0, N) + range(-N, 0)]
Out[203]:
0 1
0 -1.034025 0.222752
1 0.102861 -0.827097
2 1.218721 0.397002
7 -0.411787 0.309623
8 -0.493428 -1.834097
9 -0.797647 -0.085315
をetails - サポートされていないオペランドのタイプ(複数可)+について: '範囲' と '範囲' これはDF 'のようlist''の範囲を変換する必要がpythonの3のために、唯一の 'のpython 2'で動作 – Dark
。 iloc [list(range(0、N))+ list(範囲(-N、0))] ' – jezrael