假设我在一个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函数。