折腾:
【未解决】pandas输出数据到excel时如何输出特定格式的第一行
期间,用代码:
personList = list(teamMoneySumDict.keys()) moneyList = list(teamMoneySumDict.values()) personList.insert(0, "销售员账户") moneyList.insert(0, "团队当前业绩") print("firstTime=%s, lastTime=%s" % (firstTime, lastTime)) beginYear = firstTime.year beginMonth = firstTime.month beginDay = firstTime.day beginHour = firstTime.hour beginMinute = firstTime.minute endYear = lastTime.year endMonth = lastTime.month endDay = lastTime.day endHour = lastTime.hour endMinute = lastTime.minute summaryData = { # "销售员账户": personList, # "团队当前业绩": moneyList, beginYear: personList, "年": moneyList, beginMonth: "", "月": "", beginDay: "", "日": "", beginHour: "", "时": "", beginMinute: "", "分": "", "--": "", endYear: "", "年": "", endMonth: "", "月": "", endDay: "", "日": "", endHour: "", "时": "", endMinute: "", "分": "", } outputDf = pd.DataFrame(data=summaryData) outputDf.to_excel(OutputFullPath, sheet_name="统计结果")
结果:
竟然报错了:
发生异常: ValueError If using all scalar values, you must pass an index

If using all scalar values, you must pass an index
data = pd.DataFrame(dict,index=[0])
好像是:
此处 需要list,但是传入了 “” 空字符串
所以应该改为:空列表?
去试试:
summaryData = { beginYear: personList, "年": moneyList, beginMonth: [], "月": [], beginDay: [], "日": [], beginHour: [], "时": [], beginMinute: [], "分": [], "--": [], endYear: [], "年": [], endMonth: [], "月": [], endDay: [], "日": [], endHour: [], "时": [], endMinute: [], "分": [], }
结果:

就没报错了。
【总结】
此处用 代码:
summaryData = { beginYear: personList, "年": moneyList, beginMonth: "", "月": "", } outputDf = pd.DataFrame(data=summaryData)
会报错:
If using all scalar values, you must pass an index
原因:
传给DataFrame的dict中,应该是:
str: list
但是却包含了:
str: str
其中value值是str,属于scalar values 是不对的。
解决办法:
把value改为list即可
summaryData = { beginYear: personList, "年": moneyList, beginMonth: [], "月": [], } outputDf = pd.DataFrame(data=summaryData)
后记:
但是输出的内容,不是我们希望的:

结果不对。
那去改为:
"年": moneyList, beginMonth: "", "月": "", beginDay: "", 。。。 outputDf = pd.DataFrame(data=summaryData, index=[0])
结果:
也没报错

但是结果还不是我们希望的。
转载请注明:在路上 » 【部分解决】pandas输出excel报错:If using all scalar values, you must pass an index