擅长:python、mysql、java
<p>使用<a href="http://pandas.pydata.org/pandas-docs/stable/generated/pandas.cut.html" rel="nofollow">pandas.cut()</a>:</p>
<pre><code>bins=pd.Series([1,3,5,7,9, np.inf])
df['state'] = pd.cut(df.y, bins=bins, labels=bins.index[:-1], include_lowest=True)
</code></pre>
<p>输出:</p>
^{pr2}$
<p>如何将<code>states</code>元组列表转换为平面<code>pd.Series</code>:</p>
<pre><code>In [125]: states
Out[125]: [(1, 3), (3, 5), (5, 7), (7, 9)]
In [126]: bins = pd.Series(np.unique(list(sum(states, ()))))
In [127]: bins
Out[127]:
0 1
1 3
2 5
3 7
4 9
dtype: int32
In [128]: bins.tolist()
Out[128]: [1, 3, 5, 7, 9]
</code></pre>