我不是想缩短这个:
for x in data1:
for y in data2:
*lines*
但要做到这一点:
for x in data1:
*lines*
for y in data2:
*lines*
进入这样的单个循环(x是来自数据1的行,y是仅来自数据2的行):
for x,y in data1,data2:
*lines*
这可能吗?我想在单个循环中拟合并预测朴素贝叶斯数据:
# group data by prodi
for no, dfx_prodi in dfx.groupby('prodi'):
# implement naive bayes fit data
bnb.fit(dfx_prodi[var], dfx_prodi['daftar_kembali'])
for no, dfy_prodi in dfy.groupby('prodi'):
# implement naive bayes predict data
y_pred = bnb.predict(dfy_prodi[var])
这是可行的,但结果似乎有点可疑,有没有办法在一个循环中完成这项工作,同时保持groupby
除非我误解了什么,否则您可以使用^{} 函数,例如
在你的情况下,这应该是
如果两个列表(iterables)data1和data2的长度相同,则可以执行以下操作:
zip从2个或更多的可编辑项创建元组(x,y)。如果data1和data2的长度不同,您可以查看
itertools
标准库中的zip_longest
(它为缺少的项添加None
值)相关问题 更多 >
编程相关推荐