擅长:python、mysql、java
<p>在lamdba函数中使用“if else”:</p>
<p>方法1:在列上应用lambda,在下面仅在一列上应用lambda(轴=0)</p>
<pre><code># apply lambda on 1 column (axis = 0)
d = {'col1':[ 'a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data=d)
columnDictionary ={'a':1, 'b':2, 'd':7, 'f':8 }
df['col1'] = df['col1'].apply(lambda x: [columnDictionary[x] if x in columnDictionary else ''])
df
</code></pre>
<p>方法2:对行(轴=1)应用lambda,逐行(我认为比较慢)</p>
<pre><code>d = {'col1':[ 'a', 'b', 'c', 'd', 'e']}
df = pd.DataFrame(data=d)
columnDictionary ={'a':1, 'b':2, 'd':7, 'f':8 }
df['listColumn'] = df.apply(lambda x: [columnDictionary[i] if i in columnDictionary else '' for i in x],axis=1)
df
</code></pre>
<p>结果:</p>
<pre><code> col1 listColumn
0 a [1]
1 b [2]
2 c []
3 d [7]
4 e []
</code></pre>