【发布时间】:2017-03-09 09:56:14
【问题描述】:
我正在使用 pandas 从 CSV 文件中导入大量数据,一旦读取,我将其格式化为仅包含数字数据。然后返回列表中的列表。然后每个列表包含大约 140k 位数据。 numericalData[][].
从这个列表中,我希望创建Testing 和Training Data。对于我的测试数据,我想要读取数据的 30% numericalData,所以我使用下面这段代码;
testingAmount = len(numericalData0[0]) * trainingDataPercentage / 100
工作是一种享受。然后,我使用 numpy 从我导入的numericalData 的每一列中选择该数量的数据;
testingData.append(np.random.choice(numericalData[x], testingAmount) )
然后返回一个包含 38 列的样本(循环运行),其中每列包含从我导入的 numericalData 中随机选择的大约 49k 个数据元素。
问题是,我的trainingData 需要保存其他 70% 的数据,但我不确定如何执行此操作。我尝试比较testingData 中的每个元素,如果两个元素不相等,则将其添加到我的trainingData。这导致错误并且不起作用。接下来,我尝试从导入的数据中删除选定的testingData,然后将该新列保存到我的trainingData,唉,这也不起作用。
过去一周我只在使用 python,所以我有点不知道现在该尝试什么。
【问题讨论】:
-
你在使用 numpy 和 pandas 吗?你说你有一个列表列表。
-
我的术语可能有点不对劲。我有一个 Pandas DataFrame
pd.read_csv('kddcup-10-nonDuplicate.txt', sep='\t', header=None) -
如果您想做分层、随机拆分之类的事情(例如,当您有不平衡的数据时),您应该只使用
sklearn或其他一些库来执行此操作。见here。 -
太棒了,谢谢你。看起来正是我所追求的。