如何根据数据框中的列值获取特定的行数[重复]

Posted

技术标签:

【中文标题】如何根据数据框中的列值获取特定的行数[重复]【英文标题】:How to get specific number of rows based on column values in dataframe [duplicate] 【发布时间】:2018-04-02 06:30:02 【问题描述】:

假设我以这种方式拥有一个 MNIST 数据集。

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

我试图只选择列 ['label'] == 1 或 6 的那些行。

但是,我只想从每列 ['label'] 中获取 500 行

我该怎么做?

【问题讨论】:

也许可以试试df.loc[df['label'].iloc[0:500].isin([1,6])]... 你是指前 500 行吗?然后 df[df.label.isin([1,6]))[0:500] 就可以了。 【参考方案1】:

您可以将它们分组并为每个值选择所需的数字:

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

【讨论】:

【参考方案2】:

先使用 groupby,然后使用 filer,即

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

【讨论】:

以上是关于如何根据数据框中的列值获取特定的行数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Pandas:如何根据特定列上特定值的条件选择数据框中的行[重复]

根据列值删除Python Pandas中的DataFrame行[重复]

根据列值从熊猫数据框中提取行

SQL如何查询出某一列中不同值出现的次数?

如何对一个数据框中的列值求和并将结果添加为另一个数据框中的列?

在不计算的情况下获取 Spark 数据框中的行数