我使用一段非常简单的代码并使用单行初始化pandas dataframe
,然后添加名为list
的{{1}}中的其他行,然后{{1使用以下代码将它们发送到itemsets_dct
:
appending
当我运行此代码时,它执行时没有任何错误,但dataframe
变量只有1行,即我初始化的行。
为什么代码不是finalResults = pd.DataFrame({'Concept1': itemsets_dct[0][0][0], 'Concept2': itemsets_dct[0][0][1], 'Concept3': itemsets_dct[0][0][2], 'Concept4': itemsets_dct[0][0][3], 'Count': itemsets_dct[0][1]}, index=[0])
for i in range(1,len(itemsets_dct)):
tempResult = pd.DataFrame({'Concept1': itemsets_dct[i][0][0], 'Concept2': itemsets_dct[i][0][1], 'Concept3': itemsets_dct[i][0][2], 'Concept4': itemsets_dct[i][0][3], 'Count': itemsets_dct[i][1]}, index=[i])
finalResults.append(tempResult)
行finalResults
?
答案 0 :(得分:1)
考虑不使用迭代for
循环追加,而是构建一个字典列表,然后在一次调用中将其转换为数据帧。希望下面重新创建嵌套列表的外部结构:
itemsets_dct = [[['check1', 'check2', 'check3', 'check4'], 3],
[['check11', 'check22', 'check33', 'check44'], 3],
[['check111', 'check222', 'check333', 'check444'], 3]]
dfDict = [{'Concept1': i[0][0],
'Concept2': i[0][1],
'Concept3': i[0][2],
'Concept4': i[0][3],
'Count': i[1]} for i in itemsets_dct]
finalresults = pd.DataFrame(dfDict)
print(finalresults)
# Concept1 Concept2 Concept3 Concept4 Count
# 0 check1 check2 check3 check4 3
# 1 check11 check22 check33 check44 3
# 2 check111 check222 check333 check444 3