我有一个训练数据框已被清除,并具有原始测试数据框所具有的变量子集。我想创建一个新的测试数据框,只保留训练数据框的列。Pandas使用训练数据框列选择测试数据帧列
例如,
train.columns=['A','D','E','G']
test.columns=['A','B','C','D','E','F','G']
如何创建新的test_df是只保留train.columns?
我有一个训练数据框已被清除,并具有原始测试数据框所具有的变量子集。我想创建一个新的测试数据框,只保留训练数据框的列。Pandas使用训练数据框列选择测试数据帧列
例如,
train.columns=['A','D','E','G']
test.columns=['A','B','C','D','E','F','G']
如何创建新的test_df是只保留train.columns?
假设每个DataFrame
具有相同名称的列,那么你可以简单地从测试DataFrame
使用培训DataFrame
的DataFrame.columns
属性和[]
语法选择列。
这里是一个工作示例:
$ train = pd.DataFrame([[0,1,2,3]],columns=['A','D','E','G'])
$ train
A D E G
0 0 1 2 3
$ test = pd.DataFrame([[0,1,2,3,4,5,6]],columns=['A','B','C','D','E','F','G'])
$ test
A B C D E F G
0 0 1 2 3 4 5 6
$ test_df = test[train.columns]
$ test_df
A D E G
0 0 3 4 6
是的,工作!谢谢!如果它是一个numpy数组而不是数据框,你会知道如何做同样的事情吗? – yogz123
如果你仍然可以访问'DataFrame',那么它就像'test_df.values'一样简单,但我不确定如何从'ndarray'直接做到这一点。如果你真的需要做后者,那么我认为你仍然可以按照[文档](https://docs.scipy.org/doc/numpy/reference/arrays.indexing)使用'[]'索引语法。 HTML)。然而,如果你想根据'str'类标签选择列,那么我认为你应该继续使用'DataFrame'而不是'ndarray'。虽然,也许我只是想念你的问题的背景。 – ctj232
的工作,谢谢! – yogz123
@ ctj232如果没有至少15的代表,他们无法赞成。如果你提出了他们的问题,他们会有必要的代表让你高兴。 – piRSquared
好点,谢谢! @piRSquared – ctj232