将变量存储为另一个变量的属性是好习惯吗?
Is it good practice to store variables as attributes of another variable?
我最近开始将变量(例如 X_train、y_train、X_test、y_test)存储为完整数据帧的属性。当我同时使用多个数据集时,它帮助我组织不同的训练和测试数据集。这是普遍认为good/okay的做法吗?这是一个例子:
我原来的学习方式是:
X_train, X_test, y_train, y_test = train_test_split(some_dataframe[features],\
some_dataframe[target]
我最近开始做的事情:
some_dataframe.X_train, some_dataframe.X_test,\
some_dataframe.y_train, some_dataframe.y_test = \
train_test_split(some_dataframe[features], some_dataframe[target]
tl;dr:如果找不到 真正 好的理由,请避免合并。
我认为你所做的是所谓"bad opportunity"的一部分。
由于我不知道您的选择背后的所有细节,我并不是说这是一个坏主意,但您对问题的描述似乎指向了将不同数据源合并在一起的常见问题。
您想要的是将所有数据重新分组到一个数据结构中,以将它们与其他数据源区分开来,所以我猜您认为为什么不使用已经可用的数据,为什么不使用我刚刚使用的 "vaguely related" 数据框?
但是您应该问问自己,为什么 这个 数据结构与您想要实现的目标相关?是什么让它成为正确的数据结构?您打算将此 df 的先前数据与新数据一起使用吗?或者你只是选择这个结构,因为它是 "there"?
如果你没有理由专门使用这个数据框,我会简单地创建一个新的数据结构,可能一个字典就足够了。
在您的具体情况下,一些原因是:
一个数据框可能超出了您要查找的内容。
您通过将不同的东西放在一起(例如,现在您的数据框的尺寸是多少?多少行?)丢失了先前数据框的一些不错的属性
People/you 可能会混淆数据框的不同部分。例如,当你要改变你的数据时,你确定你会知道转换将应用于哪些数据?你会记得哪些数据是 "original" 数据框的一部分以及之后添加了什么吗?
总而言之,将不同的数据(或一般的想法)融合到一个结构(概念)中总是有风险的,你应该总是有充分的理由这样做,而不仅仅是因为你可以。
PS:请参阅@roganjosh 在评论中提出的问题,这些问题是当您开始将本不该存在的东西放在一起时出现的问题的好例子。
我最近开始将变量(例如 X_train、y_train、X_test、y_test)存储为完整数据帧的属性。当我同时使用多个数据集时,它帮助我组织不同的训练和测试数据集。这是普遍认为good/okay的做法吗?这是一个例子:
我原来的学习方式是:
X_train, X_test, y_train, y_test = train_test_split(some_dataframe[features],\
some_dataframe[target]
我最近开始做的事情:
some_dataframe.X_train, some_dataframe.X_test,\
some_dataframe.y_train, some_dataframe.y_test = \
train_test_split(some_dataframe[features], some_dataframe[target]
tl;dr:如果找不到 真正 好的理由,请避免合并。
我认为你所做的是所谓"bad opportunity"的一部分。
由于我不知道您的选择背后的所有细节,我并不是说这是一个坏主意,但您对问题的描述似乎指向了将不同数据源合并在一起的常见问题。
您想要的是将所有数据重新分组到一个数据结构中,以将它们与其他数据源区分开来,所以我猜您认为为什么不使用已经可用的数据,为什么不使用我刚刚使用的 "vaguely related" 数据框?
但是您应该问问自己,为什么 这个 数据结构与您想要实现的目标相关?是什么让它成为正确的数据结构?您打算将此 df 的先前数据与新数据一起使用吗?或者你只是选择这个结构,因为它是 "there"?
如果你没有理由专门使用这个数据框,我会简单地创建一个新的数据结构,可能一个字典就足够了。 在您的具体情况下,一些原因是:
一个数据框可能超出了您要查找的内容。
您通过将不同的东西放在一起(例如,现在您的数据框的尺寸是多少?多少行?)丢失了先前数据框的一些不错的属性
People/you 可能会混淆数据框的不同部分。例如,当你要改变你的数据时,你确定你会知道转换将应用于哪些数据?你会记得哪些数据是 "original" 数据框的一部分以及之后添加了什么吗?
总而言之,将不同的数据(或一般的想法)融合到一个结构(概念)中总是有风险的,你应该总是有充分的理由这样做,而不仅仅是因为你可以。
PS:请参阅@roganjosh 在评论中提出的问题,这些问题是当您开始将本不该存在的东西放在一起时出现的问题的好例子。