擅长:python、mysql、java
<p>由于列中包含<code>float</code>+<code>str</code>的数据类型,因此<code>Nans</code>中存在<code>pd.factorize</code>在分配-1值(默认值)后排除丢失的值。在</p>
<p>另一种方法是计算序列中存在的唯一值,然后将其转换为<code>categorical</code>dtype,后者还通过<code>codes</code>属性为<code>Nans</code>分配值-1。在</p>
<p><strong><em>演示:</em></strong></p>
<pre><code>ser = pd.Series(foo['Col1'].unique(), dtype='category')
ser
Out[125]:
0 B
1 A
2 C
3 NaN
dtype: category
Categories (3, object): [A, B, C]
print(list(zip(ser, ser.cat.codes)))
#[('B', 1), ('A', 0), ('C', 2), (nan, -1)]
</code></pre>