从熊猫python的循环中追加数据帧

时间:2020-05-26 10:56:30

标签: python pandas dataframe append

有人可以请客气帮我解决我的代码错误吗? 我希望有4列作为输出,分别是名称,单位,enter image description here价格和客户名称(此处为col) 这是我的代码。

mb = df[df['Name'] == 'Mobile number'].index.values
    # print (mb)
    VeggieStartingIndex = mb[0] + 1
    SKU = df.loc[VeggieStartingIndex:, "Name"]
    #print( df.columns[3:] )
    d1 = pd.DataFrame(df)
    d2 = pd.DataFrame(df)
    d=pd.DataFrame(df)

    for col in df.columns[3:]:
        #print(col)

        a = df.dropna(subset=[col]).loc[3:,['Name','Unit','Price',col]]
        b = pd.DataFrame(df.loc[:2,['Name','Unit','Price',col]])
        a["Values"] = a["Price"] * a[col].astype("float64")
        TotalQuantity = a[col].astype( "float64" ).sum()
        TotalValue = a['Values'].sum()
        s1 = pd.Series(["Totals",'','',TotalQuantity,TotalValue])
        s2 = pd.Series( [" "," "," "," ", " "],)
        ind = ['Name', 'Unit', 'Price', col, 'Values']
        c=pd.DataFrame([list(s1),list(s2),list(s2)],columns=ind)
        d1=([b,a,c])
        d2=pd.concat(d1)
        d2=d2.append(d1)
        print(d2)

当我尝试将d1附加到d2时,我得到的数据超过4列,并且所有客户都列在随后的列中。我猜我的dropna代码必须正确更改吗?

0 个答案:

没有答案