首页 > 解决方案 > 如何将 pandas df 中的对象或值转换为布尔值?

问题描述

我想要做的是将列中的值更改为布尔值。

我在看什么:我有一个艺术家数据集,其中有一列名为“死亡年”。

在该列中,它有死亡年份或Nan我将其更改为活着。我想在此列中将死亡年份变为 false 并将活着的值设为 True。此列的 dType 是 Object。

标签: pythonpandas

解决方案


可重现的例子:

df = pd.DataFrame({'DeathYear':[2005,2003,np.nan,1993]})

    DeathYear
0   2005.0
1   2003.0
2   NaN
3   1993.0

你变成了

df['DeathYear'] = df['DeathYear'].fillna('Alive')

    DeathYear
0   2005
1   2003
2   Alive
3   1993

你可以使用

df['BoolDeathYear'] = df['DeathYear'] == 'Alive'

    DeathYear   BoolDeathYear
0   2005        False
1   2003        False
2   Alive       True
3   1993        False

请注意,如果您的最终目标是拥有 bool 列,则根本不必填充 NaN。

只能做

df['BoolDeathYear'] = df['DeathYear'].isnull()

推荐阅读