【发布时间】:2020-05-02 00:45:30
【问题描述】:
我有一个包含两个函数的程序:test() 和 outputEval() 以及一个主函数。 test() 函数包含 3 个列表值,我只是返回它们。 outputEval() 函数从测试函数中获取返回值并将它们存储到一个 numpy 数组中,我正在使用该数组来创建数据框以创建一个 Excel 工作表。
我的代码:
import numpy as np
import pandas as pd
def test():
list1 = [1, 21, 12, 24, 54, 6]
list2 = [65, 65, 3, 2, 5, 8]
list3 = [65, 78, 87, 5, 2, 3]
modelInput = {
'list1': list1, 'list2': list2, 'list3': list3
}
return modelInput
def outputEval(modelInput):
solArray = np.zeros(3)
for i in range(0, solArray.shape[0]):
solArray[i][0] = pd.Series(modelInput['list1'])
solArray[i][1] = pd.Series(modelInput['list2'])
solArray[i][2] = pd.Series(modelInput['list3'])
df=pd.DataFrame(solArray, columns=['list1', 'list2', 'list3'])
df.to_excel('testingfile.xlsx')
def main():
testing = test()
run = outputEval(testing)
main()
运行后出现的错误
TypeError: 'numpy.float64' object does not support item assignment
想要的输出
list1 list2 list3
1 65 65
21 65 78
12 3 87
24 2 5
54 5 2
6 8 3
【问题讨论】:
-
你为什么用
pd.Series? -
因为列表的长度可能会有所不同
-
仍然出现同样的错误
-
仍然出现同样的错误
标签: python python-3.x pandas list numpy