擅长:python、mysql、java
<p>@Chris的<code>np.select</code>看起来不错,但我为<code>pd.cut</code>(<a href="https://pandas.pydata.org/pandas-docs/version/0.23.4/generated/pandas.cut.html" rel="nofollow noreferrer">see docs</a>)写了一个答案,所以我不妨把它贴出来:</p>
<pre><code>import pandas as pd
df = pd.DataFrame({'COUNTRY':['China','JAPAN','KOREA', 'USA', 'UK'],
'POPULATION':[1200,2345,3400,5600,9600],
'ECONOMY':[86212,11862,1000, 8555,12000]})
df["size"] = pd.cut(df["POPULATION"],
bins=[0, 2000, 4000, 5000, 6000, df.POPULATION.max()],
labels=["Small", "Medium", "NaN", "Large", "Huge"])
</code></pre>
<p>更有趣的是,你可以通过写一个任意的标签(在这个例子中,我写了“NaN”,但那是错误的)来处理4000到5000之间的差距</p>