训练数据帧列表的测试拆分 - Pandas
Train Test Split for a list of dataframes - Pandas
我有一个 DataFrame 列表,我想将其拆分为训练集和测试集。
对于单个 DataFrame,我可以执行以下操作,
获取测试拆分的长度
split_point = len(df)- 125
然后,
train, test = df[0:split_point], df[split_point:]
这给了我训练和测试拆分。
现在,对于 DataFrame 列表,我可以使用
获得每个 DataFrame 的测试集长度
split_point = [len(df)-125 for df in dfs] ## THIS WORKS FINE
我想对整个数据帧列表进行 train
和 test
拆分,就像我对单个数据帧所做的那样。我尝试了以下,
train, test = [(df[0:split_point], df[split_point:]) for df in dfs]
## AND THE FOLLOWING
train, test = [(df[0:split_point] for df in dfs),(df[split_point:]) for df in dfs]
两者都不起作用。我该怎么做?
(有些 DataFrame 的长度可能不同,但我并不担心,因为它会从长度中减去 125,我正在考虑将其用于测试集)
你需要做的
train, test = zip(*[(dfs[i][0:split_point[i]], dfs[i][split_point[i]:]) for i in range(len(dfs))])
那么它们中的每一个都是一个元组,其中包含数据帧的相应部分。
在上面的代码中我使用的是
split_point = [len(df)-125 for df in dfs]
为了更清楚,请考虑以下更简单的示例:
r = [(i,i**2) for i in range(5)]
a,b=zip(*r)
那么a
就是(0, 1, 2, 3, 4)
,b
就是(0, 1, 4, 9, 16)
。
我有一个 DataFrame 列表,我想将其拆分为训练集和测试集。 对于单个 DataFrame,我可以执行以下操作,
获取测试拆分的长度
split_point = len(df)- 125
然后,
train, test = df[0:split_point], df[split_point:]
这给了我训练和测试拆分。
现在,对于 DataFrame 列表,我可以使用
获得每个 DataFrame 的测试集长度split_point = [len(df)-125 for df in dfs] ## THIS WORKS FINE
我想对整个数据帧列表进行 train
和 test
拆分,就像我对单个数据帧所做的那样。我尝试了以下,
train, test = [(df[0:split_point], df[split_point:]) for df in dfs]
## AND THE FOLLOWING
train, test = [(df[0:split_point] for df in dfs),(df[split_point:]) for df in dfs]
两者都不起作用。我该怎么做?
(有些 DataFrame 的长度可能不同,但我并不担心,因为它会从长度中减去 125,我正在考虑将其用于测试集)
你需要做的
train, test = zip(*[(dfs[i][0:split_point[i]], dfs[i][split_point[i]:]) for i in range(len(dfs))])
那么它们中的每一个都是一个元组,其中包含数据帧的相应部分。
在上面的代码中我使用的是
split_point = [len(df)-125 for df in dfs]
为了更清楚,请考虑以下更简单的示例:
r = [(i,i**2) for i in range(5)]
a,b=zip(*r)
那么a
就是(0, 1, 2, 3, 4)
,b
就是(0, 1, 4, 9, 16)
。