<p dir="auto">wes, how would you feel about adding something like the following as<br>
a Dataframe method? especially with method chaining I would find this<br>
useful. Will add handling for datatypes and so on.</p>
<div class="snippet-clipboard-content notranslate position-relative overflow-auto" data-snippet-clipboard-copy-content="In [32]: from pandas.util.testing import makeCustomDataframe as mkdf
In [33]: def grep(df,col,pat):
    ...:     vals=df[col]
    ...:     return df.ix[[bool(re.search(pat,unicode(x))) for x in vals]]
In [34]: df=mkdf(20,2)
    ...: print df
C0       C_l0_g0 C_l0_g1  \
R0                         
R_l0_g0     R0C0    R0C1   
R_l0_g1     R1C0    R1C1   
R_l0_g10    R2C0    R2C1   
R_l0_g11    R3C0    R3C1   
R_l0_g12    R4C0    R4C1   
R_l0_g13    R5C0    R5C1   
R_l0_g14    R6C0    R6C1   
R_l0_g15    R7C0    R7C1   
R_l0_g16    R8C0    R8C1   
R_l0_g17    R9C0    R9C1   
R_l0_g18   R10C0   R10C1   
R_l0_g19   R11C0   R11C1   
R_l0_g2    R12C0   R12C1   
R_l0_g20   R13C0   R13C1   
R_l0_g3    R14C0   R14C1   
R_l0_g4    R15C0   R15C1   
R_l0_g5    R16C0   R16C1   
R_l0_g6    R17C0   R17C1   
R_l0_g7    R18C0   R18C1   
R_l0_g8    R19C0   R19C1   

In [35]: grep(df,&quot;C_l0_g0&quot;,&quot;R.*6&quot;)
Out[35]: 
C0       C_l0_g0 C_l0_g1  \
R0                         
R_l0_g14    R6C0    R6C1   
R_l0_g5    R16C0   R16C1  "><pre lang="ipython" class="notranslate"><code class="notranslate">In [32]: from pandas.util.testing import makeCustomDataframe as mkdf
In [33]: def grep(df,col,pat):
    ...:     vals=df[col]
    ...:     return df.ix[[bool(re.search(pat,unicode(x))) for x in vals]]
In [34]: df=mkdf(20,2)
    ...: print df
C0       C_l0_g0 C_l0_g1  \
R0                         
R_l0_g0     R0C0    R0C1   
R_l0_g1     R1C0    R1C1   
R_l0_g10    R2C0    R2C1   
R_l0_g11    R3C0    R3C1   
R_l0_g12    R4C0    R4C1   
R_l0_g13    R5C0    R5C1   
R_l0_g14    R6C0    R6C1   
R_l0_g15    R7C0    R7C1   
R_l0_g16    R8C0    R8C1   
R_l0_g17    R9C0    R9C1   
R_l0_g18   R10C0   R10C1   
R_l0_g19   R11C0   R11C1   
R_l0_g2    R12C0   R12C1   
R_l0_g20   R13C0   R13C1   
R_l0_g3    R14C0   R14C1   
R_l0_g4    R15C0   R15C1   
R_l0_g5    R16C0   R16C1   
R_l0_g6    R17C0   R17C1   
R_l0_g7    R18C0   R18C1   
R_l0_g8    R19C0   R19C1   

In [35]: grep(df,"C_l0_g0","R.*6")
Out[35]: 
C0       C_l0_g0 C_l0_g1  \
R0                         
R_l0_g14    R6C0    R6C1   
R_l0_g5    R16C0   R16C1  
</code></pre></div>
<p dir="auto">As discussed on the mailing list, we should outline how we are going to do backports. Goals would be to provide a 0.19.1 bug-fix only release and at the same time allow master to proceed as 0.20/1.0 with all bug-fixes and API changes.</p>
<p dir="auto">This issue is for how to do this, as we are ready to merge some 0.19.1 fixes. So need to put some machinery in place ASAP.</p>
<ul dir="auto">
<li>create a 0.19.1 (or .x?) branch</li>
<li><code class="notranslate">scripts/merge-py.py</code> merges to master</li>
<li>then cherry-pick to 0.19.1?</li>
</ul>
<p dir="auto">Some questions</p>
<ul dir="auto">
<li>how to ensure that we are getting the appropriate commits. Do we need a comparison script?</li>
<li>how do we deal with the duplicated whatsnew issue (IOW, should commiters be directed to 0.20, then we copy / fix to put <em>also</em> in 0.19.1)?</li>
<li>testing, I <em>think</em> travis/appveyor will build both branches (master and 0.19.x)</li>
</ul>
<p dir="auto">would be nice to link some examples of how other projects do this. We have quite a lot of activity and don't want this to become a burden.</p>