根据条件为熊猫数据框选择行

时间:2018-11-10 20:47:00

标签: pandas dataframe pycharm

import numpy as np
import pandas as pd


lst2 = [[0.23,"f1"],[5.36,'f2']]
lst2_df = pd.DataFrame(lst2,index=list('pd'),columns=list('ab'))
lst2_df = lst2_df.rename({'a':'A'},axis='columns')

print(lst2_df)

m = ['1','f2']
print(lst2_df.loc[lst2_df['b'].isin(m)])

如果我希望针对每个列迭代该条件,而不是硬编码,那么我该怎么写? 我尝试了print(lst2_df.loc[lst2_df['A':'b'].isin(m)]),但没有成功。 我知道网站上也有类似的问题,但是找不到解决我问题的问题。

1 个答案:

答案 0 :(得分:1)

使用:

select f.pid, h.hourslogged 
  from flightskills f
  join    
     (select model, max( hourslogged) as Hourslogged 
        from flightskills
       group by model) h    
    on f.model = h.model

说明:

DataFrame.isinm = ['1','f2'] print(lst2_df.loc[lst2_df.isin(m).any(axis=1)]) A b d 5.36 f2 (所有列)与布尔值进行比较:

DataFrame

然后添加DataFrame.any以检查每行至少一个True:

print (lst2_df.isin(m))
       A      b
p  False  False
d  False   True

最后用boolean indexing进行过滤。