我是python的初学者,我遇到了关于预测输出的问题。
我尝试在ComplexModel中预测测试数据'P1TestingData'并将其写入CSV文件。但是,当我打印出包含我的预测数据的“预测”时,它表明在我的每个数据之前有一个从0开始的编号。如何删除这些编号? 我试着将它写入CSV文件,但编号仍在那里
输入:
ComplexModel.params
P1TestingData = pd.read_csv('P1TestingData.csv', header=0)
prediction = ComplexModel.predict(P1TestingData)
print(prediction)
f = open("abc.csv", "w")
f.write(str(prediction))
f.close()
输出:
0 53.030011
1 -4.019369
2 14.452136
3 3.773111
4 14.535092
5 42.755951
6 6.566402
7 -0.399492
8 32.981286
9 21.616334
10 27.053343
11 20.591277
12 42.253588
13 9.253549
14 5.583377
15 8.145914
16 13.759630
17 -0.371573
18 5.036368
19 -0.338478
20 65.272560
答案 0 :(得分:0)
似乎str(prediction)
给你一个这样的字符串:
"0 53.030011 \n 1 -4.019369 ..."
因此,您可以使用函数split
拆分字符串。
例如,如果您想拆分字符串以使数组中的每一行都可以执行此操作:str(prediction).split("\n")
。
这将为您提供类似的数组:["0 53.030011", "1 -4.019369", ...]
然后你想只有第二个数字。同样的事情,你想要分割字符串,但这次使用空格字符作为分隔符。
最终代码应如下所示:
prediction_str = str(prediction)
lines = prediction_str.split("\n")
numbers = [line.split(" ")[-1] for line in lines]
print(numbers)
第三行有点复杂。它所说的是你想为行中的每个元素创建一个新数组。对于每一行,将字符串拆分为另一个数组,并将空格字符作为分隔符。 " 1 -4.019369"变成[1,-4.019369]。取最后一项(带[ - 1])将得到你的号码。
编辑:我真的不知道csv文件是如何工作的。如果您无法以其他方式收集您的号码,这是您的情况下的解决方法。答案 1 :(得分:0)
您可以通过设置Pandas
来消除index=False
的索引列。
CSV输出:
prediction.to_csv(filename, index=False)
打印:
print(prediction.to_string(index=False))