Python 使用训练数据帧列选择测试数据帧列

Python 使用训练数据帧列选择测试数据帧列,python,pandas,Python,Pandas,我有一个已经清理过的训练数据帧,它有原始测试数据帧所拥有的变量子集。我想创建一个新的测试数据框,它只保留训练数据框拥有的列 比如说, train.columns=['A','D','E','G'] test.columns=['A','B','C','D','E','F','G'] 如何创建只保留train.columns的新test_df?假设每个DataFrame都有同名的列,那么您只需使用trainingDataFrame的DataFrame.columns属性和[]语法从testDa

我有一个已经清理过的训练数据帧,它有原始测试数据帧所拥有的变量子集。我想创建一个新的测试数据框,它只保留训练数据框拥有的列

比如说,

train.columns=['A','D','E','G']

test.columns=['A','B','C','D','E','F','G']

如何创建只保留train.columns的新test_df?

假设每个
DataFrame
都有同名的列,那么您只需使用training
DataFrame
DataFrame.columns
属性和
[]
语法从test
DataFrame
中选择列即可

以下是一个工作示例:

$ 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

@ctj232如果没有至少15名代表,他们就无法投票。如果你对他们的问题投了更高的票,他们会有必要的代表对你投更高的票。说得好,谢谢@皮尔斯,工作了!非常感谢。如果它是一个numpy数组而不是一个数据帧,你知道如何做同样的事情吗?如果你仍然可以访问
数据帧
,那么它就像
测试测向值
一样简单,但我不知道如何直接从
数据帧
开始。如果您真的需要执行后一种操作,那么我认为您仍然可以使用
[]
索引语法。但是,如果您试图选择基于类
str
标签的列,那么我认为您应该继续使用
DataFrame
而不是
ndarray
。不过,也许我只是错过了你问题的背景。