Python 根据列名值在pandas中子集数据帧

Python 根据列名值在pandas中子集数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,我在熊猫中有一个数据框,需要拆分。它比这个大得多,但这里有一个例子: ID A B a 0 0 b 1 1 c 2 2 我有一个列表:keep_list=['ID','a'] 另一个列表:recode\u list=['ID','B'] 我希望通过列标题将数据框拆分为两个数据框:一个数据框包含列标题与keep_列表匹配的列和值,另一个数据框包含与recode_等位基因列表匹配的列标题和数据。到目前为止,我尝试的每一个代码都不起作用,因为它试图将值与列表进行比较,而不

我在熊猫中有一个数据框,需要拆分。它比这个大得多,但这里有一个例子:

ID A  B

a   0  0

b   1  1 

c   2  2
我有一个列表:
keep_list=['ID','a']
另一个列表:
recode\u list=['ID','B']

我希望通过列标题将数据框拆分为两个数据框:一个数据框包含列标题与keep_列表匹配的列和值,另一个数据框包含与recode_等位基因列表匹配的列标题和数据。到目前为止,我尝试的每一个代码都不起作用,因为它试图将值与列表进行比较,而不是与列名进行比较


非常感谢您的帮助

假设数据帧的名称为
df

你可以简单地做
df[保留列表]
df[重新编码列表]
以获得您想要的内容。

您可以通过以下方式完成此操作:

df1 = df[df.columns.intersection(keep_list)]
df2 = df[df.columns.intersection(recode_list)]