python - 如何将 pandas df 中的对象或值转换为布尔值?
问题描述
我想要做的是将列中的值更改为布尔值。
我在看什么:我有一个艺术家数据集,其中有一列名为“死亡年”。
在该列中,它有死亡年份或Nan
我将其更改为活着。我想在此列中将死亡年份变为 false 并将活着的值设为 True。此列的 dType 是 Object。
解决方案
可重现的例子:
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()
推荐阅读
- django - 用户始终为无,不允许用户登录
- python - 在 python 中使用 for 循环将 skimage.filters.threshold_otsu() 应用于图像/数组中的段列表时面临问题
- laravel - 为什么我的 .env 总是与旧数据库连接?
- python-3.x - url.request.urlritrive 没有下载图片
- python-3.x - 如何接受请求并在不同的线程中执行它们?
- ethereum - Tron 是否有替代的 block.timestamp(以太坊)?(计时器)
- app-store-connect - 在 testflight 上更新构建
- javascript - 正则表达式:对不支持的负向向后看使用负向向前看,并在拆分时捕获字符后面的向后看
- c - 即使在交换参数时,printf() 在 x86-64 平台上也能提供相同的输出
- sql - 需要在一个序列中插入一个字符串