假设我在一个 csv 文件中有 1000 行数据,每行有 4 列。
我想随机选择 950 行数据,并分别保留其他 50 行。我将使用 python 进一步处理这两个数据集。
如何以简单的方式做到这一点?
我使用 pandas 按列读取 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)
我们可以通过从原始 DataFrame 中删除 950 行来获得剩余的 50 行。
df_50 = train_features.drop(df_950.index)
train_test_split如果您需要在随机样本中保持类别平衡,scikit-learn 中的函数是一个替代方案。
