擅长:python、mysql、java
<p><strong><code>pandas.cut</code></strong></p>
<pre><code>c = pd.cut(
df.stack(),
[-np.inf, -10, 0, np.inf],
labels=['danger', 'warning', 'success']
)
df.join(c.unstack().add_suffix('_cat'))
x y z x_cat y_cat z_cat
0 2 -7 -30 success warning danger
1 1 -5 -20 success warning danger
</code></pre>
<p><strong><code>numpy</code></strong></p>
<pre><code>v = df.values
cats = np.array(['danger', 'warning', 'success'])
code = np.searchsorted([-10, 0], v.ravel()).reshape(v.shape)
cdf = pd.DataFrame(cats[code], df.index, df.columns)
df.join(cdf.add_suffix('_cat'))
x y z x_cat y_cat z_cat
0 2 -7 -30 success warning danger
1 1 -5 -20 success warning danger
</code></pre>