df.append()不向pandas中的数据帧添加行

时间:2016-11-01 18:12:42

标签: python pandas dataframe

我使用一段非常简单的代码并使用单行初始化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

1 个答案:

答案 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