小编典典

将包含字符串的pandas系列转换为布尔值

python

我有一个名为数据帧df作为

  Order Number       Status
1         1668  Undelivered
2        19771  Undelivered
3    100032108  Undelivered
4         2229    Delivered
5        00056  Undelivered

我想将Status列转换为布尔值(True当状态为“已交付”而False状态为“未交付”时),但是如果状态既不是“未交付”也不是“未交付”,则应将其视为“NotANumber类似”。

我想用一个字典

d = {
  'Delivered': True,
  'Undelivered': False
}

所以我可以轻松地添加其他字符串,可以将其视为TrueFalse


阅读 226

收藏
2020-12-20

共1个答案

小编典典

您可以使用map

In [7]: df = pd.DataFrame({'Status':['Delivered', 'Delivered', 'Undelivered',
                                     'SomethingElse']})

In [8]: df
Out[8]:
          Status
0      Delivered
1      Delivered
2    Undelivered
3  SomethingElse

In [9]: d = {'Delivered': True, 'Undelivered': False}

In [10]: df['Status'].map(d)
Out[10]:
0     True
1     True
2    False
3      NaN
Name: Status, dtype: object
2020-12-20