Python:如何将数据采样到测试和训练数据集中?

标签 python csv random

我一直在使用 CSV 数据来实现我的脚本,并希望将数据采样到两个数据集中:

  1. 测试数据
  2. 训练数据

我想对85%和15%的数据集进行采样,想输出两个CSV文件Test.csv和Train.csv

我希望它在基本 Python 中执行,并且不想使用任何其他外部模块,如 Numpy、SciPy、Pandas 或 Scikitlearn。谁能帮我按百分比随机抽样数据。此外,我将获得可能具有随机观测值的数据集。到目前为止,我刚刚阅读了有关 Pandas 和其他各种模块的信息,以按百分比为基础对数据进行采样,但还没有针对我的问题找到任何具体的解决方案。

此外,我想在两个文件中保留 CSV 的 header 。因为标题将使每一行都可访问并可用于进一步分析。

最佳答案

使用 random random module 中的函数得到一个在 01 之间均匀分布的随机数。

如果是 > .85 写入训练数据,否则写入测试数据。参见 How do I simulate flip of biased coin in python? .

import random

with open(input_file) as data:
    with open(test_output, 'w') as test:
        with open(train_output, 'w') as train:
            header = next(data)
            test.write(header)
            train.write(header)
            for line in data:
                if random.random() > 0.85:
                    train.write(line)
                else:
                    test.write(line)

关于Python:如何将数据采样到测试和训练数据集中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36009836/

相关文章:

python - PKCS1_PSS sign() 方法

python - 如何读取 csv django http 响应

python - 使用 Matplotlib 和 mpld3 在 Web 浏览器上生成多个图形

ruby - 在 Ruby 中生成高斯(正态分布)随机数的代码

random - Puppet:在同一节点上随机化多个 cronjobs

python - PyQt5 使用 QFileDialog 将 QlineEdit 保存到文本文件

python - 将私有(private) pypi 存储库从 GItlab 添加到 Pycharm

c - srandom_r 处的段错误

python - 使用 savemat 保存和加载 Python dict 导致错误

java - 从输入文件读取时出现新行,即使\n 是定界的