擅长:python、mysql、java
<p>做这些事情的一个好方法是使用<a href="http://docs.scipy.org/doc/numpy-1.10.0/reference/generated/numpy.digitize.html" rel="noreferrer">numpy.digitize()</a>。它接受一个bin和value数组,并返回每个值所在的bin的索引。在匹配的字符串数组中使用这些索引可以获得所需的内容:</p>
<pre><code>import numpy as np
import pandas as pd
df = pd.DataFrame({"wd": pd.Series([20.1,50,8.4,359,243,123])})
directions = np.array('N NNE NE ENE E ESE SE SSE S SSW SW WSW W WNW NW NNW N'.split())
bins = np.arange(11.25, 372, 22.5)
df['wd_stat'] = directions[np.digitize(df['wd'], bins)]
print df
wd wd_stat
0 20.1 NNE
1 50.0 NE
2 8.4 N
3 359.0 N
4 243.0 WSW
5 123.0 ESE
</code></pre>