【问题标题】:Dask Add New Column Based on the Previous ColumnDask 基于上一列添加新列
【发布时间】:2021-05-12 15:27:16
【问题描述】:
我正在使用 Dask 库来分析我的数据。
我有这组数据,我想添加一个新列,即电话号码。标志:
ID Phone No
001 NaN
002 O123421
003 Nan
我的愿望输出是这样的,如果用户在电话上有 NaN 没有标志为 '0' 否则为 '1':
ID Phone No Phone No Flag
001 NaN 0
002 O123421 1
003 Nan 0
有人可以帮我解决这个问题吗?
【问题讨论】:
标签:
python
pandas
numpy
dask
large-data
【解决方案1】:
Dask 支持常规的pandas 语法,因此下面的代码与pandas 中的代码相同:
ddf['phone_no_flag'] = ddf['phone_no'].isna() * 1
乘以 1 是得到 0/1 的值,而不是 True/False。
【解决方案2】:
请根据您显示的示例尝试以下操作。您可以在这里使用np.where 和.isnull() 函数。只需通过 np.where 检查条件,如果列(电话号码)的值为 NaN,则将 0 分配给新列或将 1 分配给新列值。
import pandas as pd
import numpy as np
df1['Phone No Flag']=np.where(df1['Phone No'].isnull(),0,1)