Dask 基于上一列添加新列

Posted

技术标签:

【中文标题】Dask 基于上一列添加新列【英文标题】:Dask Add New Column Based on the Previous Column 【发布时间】: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

有人可以帮我解决这个问题吗?

【问题讨论】:

【参考方案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)

【讨论】:

以上是关于Dask 基于上一列添加新列的主要内容,如果未能解决你的问题,请参考以下文章

一个基于列值的新列中对应列的添加值

PySpark:基于数据框中具有 UUID 的列添加新列

如何使用 Scala/Spark 添加不基于数据框中现有列的新列? [复制]

Flex3 AdvancedDataGrid:如何在现有列的基础上添加新列?

向 pyspark 中的数据框添加列

向数据框中的新列添加值