如果在pandas数据帧中找不到值,则优雅地失败

时间:2016-06-21 00:39:50

标签: python pandas

当我想根据多个条件访问数据框中的值时,有什么优雅的失败方法:

#Select from DataFrame using criteria from multiple columns
newdf = df[(df['column_one']>2004) & (df['column_two']==9)]

如果不满足上述条件的值,则pandas返回一个keyerror。我如何在newdf中存储nan值。

1 个答案:

答案 0 :(得分:1)

如果不是在不满足条件的情况下删除行,您希望pandas返回一个数据框,其中行NaN,其中条件为False,原始值为otherwis,您可以执行以下操作

您可以将长度等于数据帧行数的booleans列表分配给数据帧所有行的视图。这将使NaNFalse以及与True对应的行的原始值为False。如果整个列表都是NaN,那么您只需获得一个满False的数据框。

P.S。其中一个列名可能已关闭。即使一切都是print df1 df1[:] = df1[(df1["a"]>2)&(df1["b"]>1).tolist()] print df1 ,它也应该只返回一个空数据帧而不是keyError。

输入:

   a  b  c
0  1  2  3
1  2  2  3
2  3  2  3
     a    b    c
0  NaN  NaN  NaN
1  NaN  NaN  NaN
2  3.0  2.0  3.0

输出:

var playing = false;

$('.audio-button').click(function() {
  var audio = $(this).find('audio')[0]; 

  if (playing !== true) {
    audio.play();
  } else {
    audio.pause();
  }

  $(this).toggleClass('playing');
  playing = !playing;
  $(this).siblings().find('audio').each(function(index, elem){

    elem.pause();
    elem.currentTime = 0;

  });

});