我有一个名为 df
的 DataFrame 为
Order Number Status
1 1668 Undelivered
2 19771 Undelivered
3 100032108 Undelivered
4 2229 Delivered
5 00056 Undelivered
我想将 Status
列转换为 boolean 值(状态为已交付时为 True
,状态为未交付时为 False
)
但如果状态既不是“未交付”也不是“已交付”,则应将其视为 NotANumber
或类似的东西。
我想使用字典
d = {
'Delivered': True,
'Undelivered': False
}
所以我可以轻松添加其他字符串,可以将其视为 True
或 False
。
最佳答案
你可以只使用 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
关于python - 将包含字符串的 Pandas 系列转换为 boolean 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17702272/