Pandas:随机删除行,而不会改组数据集

我有一个数据集,它需要省略几行,同时保留行的顺序。我的想法是使用一个掩码,该掩码0的长度介于数据集的长度和数据集的长度之间,但是我不确定如何在不对行进行混排的情况下设置掩码,即类似于对数据集进行采样的方法。

示例:数据集有5行和2列,我想随机删除一行。

Col1 | Col2

A | 1

B | 2

C | 5

D | 4

E | 0

转换为:

Col1 | Col2

A | 1

B | 2

D | 4

E | 0

第三行(Col1='C')被随机选择省略。

我应该怎么做?

回答:

以下应为您工作。在这里,我remove_ndf的索引中随机抽取row_ids

。之后,df.drop将这些行从数据框中删除,并返回旧数据框的新子集。

import pandas as pd

import numpy as np

np.random.seed(10)

remove_n = 1

df = pd.DataFrame({"a":[1,2,3,4], "b":[5,6,7,8]})

drop_indices = np.random.choice(df.index, remove_n, replace=False)

df_subset = df.drop(drop_indices)

数据框df

    a   b

0 1 5

1 2 6

2 3 7

3 4 8

数据框df_subset

    a   b

0 1 5

1 2 6

3 4 8

以上是 Pandas:随机删除行,而不会改组数据集 的全部内容, 来源链接: utcz.com/qa/410217.html

回到顶部