python - 同时循环测试和训练集

标签 python python-3.x pandas dataframe

我正在学习时间序列教程。我发现了一些与此相关的内容:

for i in (train,test):
    print(i)

现在,我的期望是我们正在迭代 traintest 的元组。但令人惊讶的是,我发现它首先处理了所有train数据,然后处理了test数据。幕后到底发生了什么?

编辑:训练和测试是 Pandas 数据帧。 假设代码是

for i in (a,b):
    print(i)

然后输出

如果是列表:

[1,2,3]
[2,4]

对于数据帧:

   0
0  1
1  2
2  3
   0
0  2
1  4

最佳答案

在 Python 中,您可以通过执行 (1, 2, 3) 创建元组(即不可变列表)。这与创建列表 [1, 2, 3] 的方式类似。您在 for 循环中所做的是创建一个长度为 2 的元组,其中包含条目 traintest,然后循环它们。

以下打印 1、2 和 3:

my_tuple = (1, 2, 3)
for i in my_tuple:
    print(i)

...与此相同:

for i in (1, 2, 3):
    print(i)

您的教程将其作为循环执行的原因很简单,即对训练和测试进行预测所需的操作是相同的。

以下示例可能更接近您的教程:

train = load_train_data()
model = train_model(train)
test = load_test_data()
for dataset in (train, test):
    predictions = model.predict(dataset)
    print(predictions)

这与以下内容相同:

train = load_train_data()
model = train_model(train)
test = load_test_data()
train_predictions = model.predict(train)
print(train_predictions)
test_predictions = model.predict(test)
print(test_predictions)

关于python - 同时循环测试和训练集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54276450/

相关文章:

python - 识别 pandas 列中的某些单词

python - 删除具有重复索引的 pandas 行

python - sklearn 内部访问 cython 类和函数

python - 无需安装即可使用 Python

python - Python 中的快速求和

python - 函数重复十次而不是一次 - Pygame Zero

python - 将名称映射到列表列表中包含的代码

在不同位置加入字符串的 Pythonic 方式

python - 涉及循环引用时不执行 __del__method

python - 仅当每行中的值数量高于 python pandas 中的特定数量时才计算平均值