我想用等于1的单元格过滤掉下面数据框(df1)中的所有值,并创建一个新的数据框,其中每一行都有对应单元格中的行和列(如下面的df2所示):
dict1 = [{'12/21/18': 0,'12/22/18': 0,'12/23/18': 1,'12/24/18': 1},
{'12/21/18': 1,'12/22/18': 1,'12/23/18': 0,'12/24/18': 1},
{'12/21/18': 0,'12/22/18': 1,'12/23/18': 0,'12/24/18': 0},
{'12/21/18': 1,'12/22/18': 0,'12/23/18': 1,'12/24/18': 1}]
df1 = pd.DataFrame(dict1, index= ['AAPL','CSCO','GE','MSFT' ])
dict2 = [{'Ticker': 'AAPL','Date': '12/23/18'},
{'Ticker': 'AAPL','Date': '12/24/18'},
{'Ticker': 'CSCO','Date': '12/22/18'},
{'Ticker': 'CSCO','Date': '12/24/18'},
{'Ticker': 'GE', 'Date': '12/22/18'},
{'Ticker': 'MSFT','Date': '12/24/18'}]
df2 = pd.DataFrame(dict2)
有人能提出一种方法来这样做吗?你知道吗
我认为最简单的方法如下:
最后,为了将其转换为所需的形式,我们删除0,重置索引,然后排序:
您可以尝试查看dataframe的值,并获得一个索引数组,其中该值大于0。然后可以使用索引和列名列表中的索引来构建新的数据帧。你知道吗
这里是@slayer和@lucash给出的方法的性能比较。我还添加了第三种方法。你知道吗
显然,@slayer的方法胜过一切。你知道吗
相关问题 更多 >
编程相关推荐