<p><strong>新答案</strong></p>
<p>使用<code>factorize</code></p>
<pre><code>df.assign(
NewCol=np.core.defchararray.add('Fruit', df.fruit.factorize()[0].astype(str))
)
date fruit quantity NewCol
0 4/5/2014 13:34 Apples 73 Fruit0
1 4/5/2014 3:41 Cherries 85 Fruit1
2 4/6/2014 12:46 Pears 14 Fruit2
3 4/8/2014 8:59 Oranges 52 Fruit3
4 4/10/2014 2:07 Apples 152 Fruit0
5 4/10/2014 18:10 Bananas 23 Fruit4
6 4/10/2014 2:40 Strawberries 98 Fruit5
</code></pre>
<p><strong>不是一条线,而是更好的</strong></p>
^{pr2}$
<p><strong>相同的答案,但正在更新<code>df</code></strong></p>
<pre><code>f, u = pd.factorize(df.fruit.values)
n = np.core.defchararray.add('Fruit', f.astype(str))
df = df.assign(NewCol=n)
# Equivalent to
# df['NewCol'] = n
df
date fruit quantity NewCol
0 4/5/2014 13:34 Apples 73 Fruit0
1 4/5/2014 3:41 Cherries 85 Fruit1
2 4/6/2014 12:46 Pears 14 Fruit2
3 4/8/2014 8:59 Oranges 52 Fruit3
4 4/10/2014 2:07 Apples 152 Fruit0
5 4/10/2014 18:10 Bananas 23 Fruit4
6 4/10/2014 2:40 Strawberries 98 Fruit5
</code></pre>
<p><strong>旧答案</strong></p>
<p>@SeaMonkey找到了看到错误的原因。在</p>
<p>不过,我猜你想做什么。<br/>
我把<code>cumcount</code>添加到<code>fruit</code></p>
<pre><code>df.assign(NewCol=df.fruit + df.groupby('fruit').cumcount().astype(str))
date fruit quantity NewCol
0 4/5/2014 13:34 Apples 73 Apples0
1 4/5/2014 3:41 Cherries 85 Cherries0
2 4/6/2014 12:46 Pears 14 Pears0
3 4/8/2014 8:59 Oranges 52 Oranges0
4 4/10/2014 2:07 Apples 152 Apples1
5 4/10/2014 18:10 Bananas 23 Bananas0
6 4/10/2014 2:40 Strawberries 98 Strawberries0
</code></pre>