Python Pandas Dataframe:将预测列表拆分为Dataframe列

Python Pandas Dataframe:将预测列表拆分为Dataframe列,python,python-2.7,pandas,dataframe,scikit-learn,Python,Python 2.7,Pandas,Dataframe,Scikit Learn,我正在使用scikit学习模型()进行预测 print len(predict) 465 print predict[0:2] [[111111111, 22222, 33333, 44444, 55555, ...],[123,233,466,557,886, ...]] 最初,我尝试只取前3名,这是使用以下代码完成的,给定了一个拟合模型(clf)、标签列表(标签)和测试数据(测试): 我试图把它推广到n个预测 print len(predict) 465 print predict[0:2

我正在使用scikit学习模型()进行预测

print len(predict)
465
print predict[0:2]
[[111111111, 22222, 33333, 44444, 55555, ...],[123,233,466,557,886, ...]]
最初,我尝试只取前3名,这是使用以下代码完成的,给定了一个拟合模型(clf)、标签列表(标签)和测试数据(测试):

我试图把它推广到n个预测

print len(predict)
465
print predict[0:2]
[[111111111, 22222, 33333, 44444, 55555, ...],[123,233,466,557,886, ...]]
将n个预测拆分为n列而不具体调用每个预测名称的python方法是什么

理想情况下,我想这样做:

_,neighbors = clf.query(select_columns(test),k=30)
topn = [Counter([labels[idx] for idx in neighborSet]).most_common(n) for neighborSet in neighbors]
predict = [[x for x,_ in  idx] for idx in topn]
preds = pd.DataFrame()
preds['predict'+str(i)] for i in range(n) = [x[i] if len(x) > i else x[0] for x in predict]
我正在寻找一种在数据帧中将项目列表有效地拆分为独立列的方法


编辑:我能够通过字典理解和来自dict的pd.DataFrame

_,neighbors = clf.query(select_columns(test),k=30)
topn = [Counter([labels[idx] for idx in neighborSet]).most_common(n) for neighborSet in neighbors]
predict = [[x for x,_ in  idx] for idx in topn]
preds = [{'predict'+str(i+1):x[i] if len(x) > i else x[0] for i in range(n)} for x in predict]
preds = pd.DataFrame.from_dict(preds)

这是正确的方法还是有更好的方法。

好问题。您能否发布一个
predict
的数据片段以获得可复制的示例?