2017-10-21 124 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) 
相关问题