Python 我们如何组合多个csv文件,并在同一图表上绘制预测值和实际值

Python 我们如何组合多个csv文件,并在同一图表上绘制预测值和实际值,python,python-3.x,pandas,csv,plot,Python,Python 3.x,Pandas,Csv,Plot,作为数据科学讲座作业的一部分,我们希望在使用RandomForestRegressor拟合模型后,在同一个图表中绘制实际值和预测值。我们正在考虑的两个数据集可以在下面的链接中找到 我们的解决方案和绘制数值的尝试如下所示 import pandas as pd import numpy as np import warnings warnings.filterwarnings("ignore", category=DeprecationWarning) df = pd.concat(

作为数据科学讲座作业的一部分,我们希望在使用
RandomForestRegressor
拟合模型后,在同一个图表中绘制实际值和预测值。我们正在考虑的两个数据集可以在下面的链接中找到

我们的解决方案和绘制数值的尝试如下所示

import pandas as pd
import numpy as np



import warnings
warnings.filterwarnings("ignore", category=DeprecationWarning) 


df = pd.concat(map(pd.read_csv, glob.glob(os.path.join('', "testdata*.csv"))))
#df = pd.read_csv('testdata1.csv')

for i in range(1,3):
    df['X_t'+str(i)] = df['X'].shift(i)

print(df)

df.dropna(inplace=True)




X = df.drop('Y', axis=1)


modelPred_test = reg.predict(X_test)
ax.plot(pd.Series(index_values), y_test.values)

plotsInOne=pd.DataFrame(pd.concat([pd.Series(modelPred_test), pd.Series(y_test.values)], axis=1))


plt.figure(); plotsInOne.plot(); plt.legend(loc='best')
当我仅将单个数据集作为
df=pd.read\u csv('testdata1.csv')
并应用如上所示的绘图命令-它工作得非常好

但是如果我将这两个数据集合并为

df=pd.concat(map(pd.read\u csv,glob.glob(os.path.join(“”,“testdata*.csv”)))

应用plot命令,它似乎不会将数据集视为一个,而是在一个plot中生成两行,如下所示。我们在下一行中有两个线条图的原因是因为plot命令正在处理中找到的
testdata1.csv
testdata2.csv
,即使使用
df=pd.concat(map(pd.read\u csv,glob.glob(os.path.join(“”,“testdata*.csv”))组合(串联或连接排序)


我们如何解决这个问题?提前感谢。

只需对新阵列进行拼接,然后对其进行排序,使其具有上升的x轴。
另一种方法是使用点而不是线进行打印。

要使其正常工作,我相信您必须设置
ignore\u index=True
,如下所示

df = pd.concat(map(pd.read_csv, glob.glob(os.path.join('', "testdata*.csv"))),ignore_index=True)

希望这能有所帮助。

我相信,用点而不是线来绘图会解决问题。如果您在我的代码
y\u test.sort\u index(inplace=True)
X\u test.sort\u index(inplace=True)
中看到过它,我就是这样排序的。或者你的意思不同?你想让数据以不同的颜色绘制成线还是真的合并?如果是后者,请检查您的排序是否按预期工作。如果我们合并这些文件并将其放入训练和测试集中,您不认为将其视为一个文件(合并)并将其作为一个文件进行打印是有意义的吗?我已经在我的问题中包含了两个样本数据集,如果您也能尝试一下,我将不胜感激。谢谢这是神经网络数据吗?如果是那样的话,最好把它分开。@MaartenFabré,如果你能看看这个,我将不胜感激。非常感谢。