建立一个指示变量

你从字符串列可以抽出一个哑变量。例如,是否他们由|分割:

  1. In [108]: s = pd.Series(['a', 'a|b', np.nan, 'a|c'])
  2. In [109]: s.str.get_dummies(sep='|')
  3. Out[109]:
  4. a b c
  5. 0 1 0 0
  6. 1 1 1 0
  7. 2 0 0 0
  8. 3 1 0 1

索引也支持get_dummies,它返回一个多重索引:

New in version 0.18.1.

  1. In [110]: idx = pd.Index(['a', 'a|b', np.nan, 'a|c'])
  2. In [111]: idx.str.get_dummies(sep='|')
  3. Out[111]:
  4. MultiIndex(levels=[[0, 1], [0, 1], [0, 1]],
  5. labels=[[1, 1, 0, 1], [0, 1, 0, 0], [0, 0, 0, 1]],
  6. names=['a', 'b', 'c'])

参见 get_dummies().