(每天有27个数字)
我想使用LSTM预测第二天的27个数字列表。 它在此步骤中一直遇到错误:data_matrix = np.array(grouped_data.loc[:, "Số"].tolist())
KeyError: 'Số'
(这意味着“数字”)我的代码是我的代码:
import numpy as np
import pandas as pd
df = pd.read_csv("C:/Users/Admin/lonum_fixed.csv", encoding="utf-8", sep=",")
df.columns = df.columns.str.strip()
grouped_data = df.groupby("Ngày")[["Số"]].apply(lambda x: list(map(int, x["Số"].values))).reset_index()
grouped_data["Số"] = grouped_data["Số"].apply(lambda x: eval(x) if isinstance(x, str) else x)
data_matrix = np.array(grouped_data.loc[:, "Số"].tolist())
首先:当它读取数据时,它会自动转换为整数,因此无需使用
map(int, ...)
。
apply( ...list ...)
创建列表,因此无需使用
eval()
问题是因为
groupby().apply()
创建了带有名称的数据帧,而不是0
后来提出错误,而不是"Số"
您可以将代码减少为grouped_data["Số"].apply(...)
grouped_data.loc[:, "Số"]
熊猫将数据保留为numpy.Array,以便您可以获得
grouped_data = df.groupby("Ngày")["Số"].apply(list).reset_index(name="Số")
用于测试的Fulll代码:
I仅在内存中仅创建类似文件的对象,但您可以使用文件名。
"Số"
恢复:
data_matrix = grouped_data["Số"].values