2017-10-21 122 views
0

假設我有這種方式的MNIST數據集。如何根據數據框中的列值獲取特定行數

df = pd.read_csv('data/train.csv') 
data = df.loc[df['label'].isin([1,6])] 

我想只選擇那些行其列[「標籤」] == 1或6

不過,我想從每列僅獲得500行[「標籤」]

我該怎麼做?

+0

也許你可以試試'df.loc [DF ['標籤'] .iloc [0:500] .isin([1,6])]'... –

+0

你的意思是第500行嗎?然後df [df.label.isin([1,6]))[0:500]將會執行。 – skrubber

回答

0

使用GROUPBY第一,然後過濾器,即

ndf= df.groupby('label').head(500) 
data = ndf.loc[ndf['label'].isin([1,6])] 
0

您可以將它們分組,然後選擇要爲每個值數:

data = df.loc[df['label'].isin([1,6])].groupby('label').head(500) 
相關問題