擅长:python、mysql、java
<p>您可以使用列表:</p>
<pre><code>df['col3'] = [c2 if c2 == 1 else (c1 if c2 == 2 else None)
for c1, c2 in zip(df.col1, df.col2)]
>>> df
geo col1 col2 col3
0 CA A 1 1
1 CA A 2 A
2 CA B 1 1
3 CA B 2 B
4 CA B 1 1
5 CA C 1 1
6 CA C 2 C
</code></pre>
<p>考虑到您在评论中陈述的例外情况,您还可以使用<code>iterrows</code>:</p>
<pre><code>df['col3'] = None
for n, row in df.iterrows():
if row.col2 == 1:
df.ix[n, 'col3'] = row.col2
elif row.col2 == 2:
df.ix[n, 'col3'] = row.col1
# Other cases.
</code></pre>