Question Details

No question body available.

Tags

python pandas dataframe matplotlib google-colaboratory

Answers (1)

April 2, 2026 Score: 2 Rep: 149,518 Quality: Medium Completeness: 80%

You may need Xtest.index

data['timestamp'].iloc[Xtest.index]

but it can be safer to use .loc because index sometimes may not have numbers 0..len(data) but something else - e.g. 10..len(data)+10 (data.index = range(10, len(data) + 10)) and then iloc will search in wrong place.

data['timestamp'].loc[Xtest.index]

Minimal working code with example data directly in code - so everyone can simply copy and run it.

import pandas as pd
import matplotlib.pyplot as plt
from sklearn.modelselection import traintestsplit
from sklearn.linearmodel import LinearRegression

path = '/content/drive/MyDrive/MLDATASETS/energy.csv'

data = pd.readcsv(path)

import io

text = """timestamp,temp,load 2026.04.01,12,1 2026.04.02,9,0 2026.04.03,15,1 2026.04.04,4,0 2026.04.05,10,1 2026.04.06,10,1 2026.04.07,15,1 2026.04.08,7,0 2026.04.09,5,0 2026.04.10,11,1 """ data = pd.readcsv(io.StringIO(text))

data["timestamp"] = pd.todatetime(data["timestamp"])

data["timenum"] = range(10, len(data) + 10)

data.index = range(10, len(data) + 10) # to show that iloc is wrong idea

print(data)

X = data[["timenum", "temp"]] y = data["load"]

Xtrain, Xtest, ytrain, ytest = traintestsplit(X, y, testsize=0.4)

model = LinearRegression() model.fit(Xtrain, ytrain)

ypred = model.predict(Xtest) print(Xtest)

plt.figure(figsize=(15, 5)) plt.scatter(data["timestamp"].loc[Xtest.index], ytest, s=5, label="Actual") plt.scatter(data["timestamp"].loc[Xtest.index], ypred, s=5, color="red", label="Predicted") plt.xlabel("Datetime") plt.ylabel("Load") plt.title("Energy Load:Actual vs Predicted") plt.legend() plt.tightlayout() plt.show()

Result (for 10 values and test_size=0.4):

enter image description here