搜索整个DataFrame

时间:2017-07-24 16:41:31

标签: python python-3.x pandas numpy

我有一个具有相似值的DataFrame。重要性是值所在的列。 (主要DataFrame)

values = [(' 12345',' 23456',' 34567',' 45678'),
(' 56789',' 67890',' 789102',' 854695'),
(' 221155',' 5968',' 55-BP',' 69853')]

标签= ['列A','列B','列C','列D']

main_df = pd.DataFrame.from_records(values,columns = label)

我正在寻找一种传递值列表的方法来搜索整个DataFrame并获取Column。 (名单) list =(' 56789',55-BP)

(Output DataFrame)
Val 1 | Column A  
Val 2 | Column C

如果更容易,我可以转置轴并获得索引。

Val 1 | Index A  
Val 2 | Index x

我真的想使用Python列表(不必输入以逗号分隔的列表)

谢谢

1 个答案:

答案 0 :(得分:0)

stack()是DataFrame

中的一个有用功能
values=[('12345', '23456', '34567', '45678'),
('56789', '67890', '789102', '854695'),
('221155','5968', '55-BP', '69853')]

label=['column A', 'column B', 'column C', 'column D']

main_df=pd.DataFrame.from_records(values, columns=label)

list = ['56789', '55-BP']

#####

main_df.stack().reset_index(level=[0,1]).set_index(0).loc[list]

level_0 level_1
0       
56789   1   column A
55-BP   2   column C

level_0是您需要的索引,level_1是您需要的列。