将一个数据框的两列与另一个数据框的一列进行比较,如果匹配,则打印该行

时间:2018-08-08 08:21:54

标签: python pandas dataframe

我有两个csv文件读入2个数据帧:

df1:

 Aend   Bend

  A      B

  C      D

df2

 node_name Alarm

   A        alarm1

   D        alarm2

列表= [“ NTP”,“ LOS”]

如果列Aend或Bend与df2中的node_name匹配,我想检查df1中的row1。如果是,请从df2中获取相应的行,并必须检查条件

`df2 [Alarm]包含列表中的任何值:

  print "YES"

其他:

  print "NO"

类似地检查row2。 最好的方法是什么。

1 个答案:

答案 0 :(得分:0)

您似乎要解决两个问题:

  1. 根据jar cvf /path/to/node/cordapps/MyCordapp-migration.jar migration中的匹配df2过滤node_name
  2. 根据df1是否在输入列表中,向df2添加新列。

对于第一部分,您可以构造范围内的值列表并使用Alarm

pd.Series.isin

对于第二部分,您可以使用# combine A_end and B_end values vals = df1.values.ravel() # filter df2 df2 = df2[df2['node_name'].isin(vals)] 根据条件创建新系列:

numpy.where