[英]How to iterate 2 data of 2-dimensional arrays with zip in python?
我有 2 個數據(datatrain 和 datatest),以 id、letter 和 answer 作為列:
import pandas as pd
datatrain = pd.DataFrame([[1,'A','Yes'],[2,'B','No'],[3,'C','Yes'],[4,'A','No'],[5,'B','Yes']], columns=['id','letter','answer'])
datatest = pd.DataFrame([[1,'B',''],[2,'B',''],[3,'B','']], columns=['id','letter','answer'])
當我用 zip 迭代它們時......
for (no_train, data_train), (no_test, data_test) in zip(datatrain.groupby('letter'),datatest.groupby('letter')):
print(data_train.values)
print(data_test.values)
// bnb.fit(data_train['id','letter'], data_train['answer'])
// pred = bnb.predict(data_test['id','letter'])
print(data_test.values) 按預期工作,但我只會在 print(data_train.values) 上獲得 groupby 的第一個字母,我想打印 data_train 的所有 groupby 字母。
打印結果(data_train.values):
[[1,'A','Yes']
[4,'A','No']]
打印(data_train.values)的預期結果:
[[1,'A','Yes']
[4,'A','No']]
[[2,'B','No']
[5,'B','Yes']]
[[3,'C','Yes']]
如何使用 zip 迭代二維數組的 2 個數據? 我想同時實現朴素貝葉斯分類器,所以我不能在不同的循環中分離 datatrain 和 datatest 或在 datatrain 循環內嵌套 datatest 循環
如果你想在data_train所有3種字母,確保你有所有這些3種類型的數據測試。
例如,這應該給你預期的結果
import pandas as pd
datatrain = pd.DataFrame([[1,'A','Yes'],[2,'B','No'],[3,'C','Yes'],[4,'A','No'],[5,'B','Yes']], columns=['id','letter','answer'])
datatest = pd.DataFrame([[1,'B','xx'],[2,'B','xx'],[3,'B','xx'], [3,'A','yy'], [3,'C','yy']], columns=['id','letter','answer'])
for (no_train, data_train), (no_test, data_test) in zip(datatrain.groupby('letter'), datatest.groupby('letter')):
print(data_train.values)
結果:
[[1 'A' 'Yes']
[4 'A' 'No']]
[[2 'B' 'No']
[5 'B' 'Yes']]
[[3 'C' 'Yes']]
這是因為zip() 的工作方式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.