Dataframe 从数据帧中选择列

Dataframe 从数据帧中选择列,dataframe,stockquotes,Dataframe,Stockquotes,我有一个每月1000只股票回报的数据框架,ID作为列名。 我只需要选择与另一个数据帧中的值相匹配的列,其中包括我想要的ID 我相信这真的很简单,但我已经挣扎了2天,如果有人有一个简单的解决方案,这将是非常感谢。谢谢。您可以将单列permno list数据框(osr\u curr\u permnos)转换为列表,然后使用该列表从主数据框(all\u rets)中选择某些列 要将osr\u curr\u permnos列“0”转换为列表,可以使用.To\u list() 然后,您可以使用该列表对

我有一个每月1000只股票回报的数据框架,ID作为列名。

我只需要选择与另一个数据帧中的值相匹配的列,其中包括我想要的ID


我相信这真的很简单,但我已经挣扎了2天,如果有人有一个简单的解决方案,这将是非常感谢。谢谢。

您可以将单列permno list数据框(osr\u curr\u permnos)转换为列表,然后使用该列表从主数据框(all\u rets)中选择某些列

要将osr\u curr\u permnos列“0”转换为列表,可以使用.To\u list()

然后,您可以使用该列表对所有_ret和.copy()进行切片,将其重新复制到新的数据帧中

python代码可能类似于:

keep = osr_curr_permnos['0'].to_list() 
selected_rets = all_rets[keep].copy() 
“keep”将是一个列表,“selected_rets”将是您的新数据帧

如果osr\u curr\u permnos有可能有重复的,您需要过滤掉:

keep = osr_curr_permnos['0'].drop_duplicates().to_list()
selected_rets = all_rets[keep].copy()

正如我所预料的,答案比我想的要简单得多。基本上,我需要在我的permnos列表中获取整数值,并将它们重新转换为字符串

osr_curr_permnos['0'] = osr_curr_permnos['0'].apply(str)
keep = osr_curr_permnos['0'].values
然后,我可以使用它从返回数据框中选择列,返回数据框中有字符串值作为列标题

all_rets[keep]

这只是int与string的不匹配。

请包括,而不是数据的图像谢谢。新投稿人和我都很欣赏关于如何创建更好帖子的指导。