假设我在一个csv文件中有一千行数据,每行有4列。

我想随机选择950行数据,并分别保留其他50行。我将使用python进一步处理这两个数据集。

我如何轻松地做到这一点?

我使用熊猫按列读取csv文件。

最佳答案

以下应该可以解决问题:

train_file = "training_data_ez.csv"
train_features = pd.read_csv(train_file, usecols=['var', 'sq', 'sin'])


pd.DataFrame.sample方法让您从pd.DataFrame中随机取样。默认情况下,这是不可替换的,即我们不会对同一行进行两次采样。

df_950 = train_features.sample(950)


剩下的50个我们可以通过dropping从原始DataFrame中获得950行。

df_50 = train_features.drop(df_950.index)


如果您需要在随机样本中保留类平衡,则可以使用scikit-learn的train_test_split函数。

10-07 12:09