有人可以请客气帮我解决我的代码错误吗? 我希望有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代码必须正确更改吗?