Pandas数据框按列层次结构选择和合并部分重复的行

时间:2018-09-04 22:50:27

标签: pandas dataframe hierarchy

请考虑这部分df的油漆罐以及它们的百分比填充水平,具体取决于倾倒时油漆的温度。

myinputdf=pd.DataFrame(data= [['Paint','R','25','5L','','99',''],['Paint','R','50','5L','96','','101'],['Paint','Y','25','5L','','98.5',''],['Paint','G','25','5L','','98.2',''],['Paint','G','-10','5L','97','','102.1'],['Paint','Y','-30','5L','97','98.6',''],['Paint','B','25','5L','98','98.2','99.4'],['Paint','B','55','10L','97.3','','99.9'],['Eggs','R','25','5L','','99','']], columns=['Product', 'Color', 'Temperature', 'Volume', 'Low Side','Typ','High Side'])

我希望按油漆颜色从部分数据中获得最完整的低/典型/高数据,直到更多的源数据可供我使用为止。

myoutputdf = pd.DataFrame(data=[['Paint', 'R', '[25,50]', '5L', '96', '99', '101'], ['Paint', 'Y', '[-30,25]', '5L', '97', '98.5', ''], ['Paint', 'G', ['-10','25'], '5L', '97', '98.2', '102.1'],['Paint', 'B', ['25', '55'], ['5L','10L'], '97.3', '98.2', '99.9'], ['Eggs', 'R', '25', '5L', '', '99', '']], columns=['Product', 'Color', 'Temperature', 'Volume', 'Low Side', 'Typ', 'High Side'])

myinputdf中有一些有目的的重复项,例如黄色-30C Typ和蓝色10L 55C High / Low。

我想要一种分层选择数据的方法。

就像我只有25C的数据一样,我只会使用它,但是,如果我还有更具体的55C的数据,也可以使用,如果我有更具体的10L数据,则可以使用。

因此,我想以分层方式选择每个条件列,并针对每种颜色将其提取为一个“最佳当前数据”行。

到目前为止,我已经获得

new_filter= myinputdf.duplicated(subset=['Product', 'Color'], keep= False)
minidf=myinputdf[new_filter.values]

但是我不知道我是否能够在列上构建可伸缩的分层过滤器。

非常感谢您的帮助。

0 个答案:

没有答案