【问题标题】:How to create a new column with 2 or more condition validation in Koalas如何在考拉中创建具有 2 个或更多条件验证的新列
【发布时间】:2021-02-10 03:41:51
【问题描述】:

我在 df3 上使用 3 次验证将“Turno”列分类为“Turno_PM”、“Turno_AM”或“N/A”,但我想知道是否存在达到相同目标的“简单方法”结果,就像 if/elif/else 或类似的“循环”。

这里是我使用的代码。

from databricks import koalas as ks
from databricks.koalas.config import set_option, reset_option
set_option("compute.ops_on_diff_frames", True)

#Turno PM
kdf.loc[(kdf['dot_agencia_origen'] == 'AGENCIA RM') & (kdf['dot_agencia_destino']!='AGENCIA RM') | (kdf['dot_agencia_origen'] == 'AGENCIA VALPARAISO') & (kdf['dot_agencia_destino']!='AGENCIA RM') & (kdf['dot_agencia_destino']!='AGENCIA VALPARAISO') | (kdf['dot_agencia_origen'] == 'AGENCIA RANCAGUA') & (kdf['dot_agencia_destino']!='AGENCIA RM') & (kdf['dot_agencia_destino']!='AGENCIA RANCAGUA'),'Turno']= 'Turno_PM'


#Turno AM
kdf.loc[(kdf['dot_agencia_origen'] == 'AGENCIA RM') & (kdf['dot_agencia_destino']=='AGENCIA RM') | (kdf['dot_agencia_origen'] == 'AGENCIA VALPARAISO') & (kdf['dot_agencia_destino']=='AGENCIA RM')|(kdf['dot_agencia_origen'] == 'AGENCIA RANCAGUA') & (kdf['dot_agencia_destino']=='AGENCIA RM'),'Turno']='Turno_AM'

#Regiones
kdf.loc[(df3['Turno'].isnull()),'Turno']='Regiones'

【问题讨论】:

  • “&”和“|”的混合使用困惑的人,您可以为每个条件添加()

标签: pandas dataframe azure-databricks spark-koalas


【解决方案1】:

另一种解决方案 -> 构造条件:

# Turno PM
cond1  = (df3['dot_agencia_destino'] != 'AGENCIA RM')
cond2  = False
cond2 |= (df3['dot_agencia_origen'] == 'AGENCIA RM')
cond2 |= (df3['dot_agencia_origen'] == 'AGENCIA VALPARAISO') & (df3['dot_agencia_destino']!='AGENCIA VALPARAISO')
cond2 |= (df3['dot_agencia_origen'] == 'AGENCIA RANCAGUA')   & (df3['dot_agencia_destino']!='AGENCIA RANCAGUA')
cond = cond1 & cond2
df3.loc[cond, 'Turno'] = 'Turno_PM'

# Turno AM
cond = True
cond &= (df3['dot_agencia_destino'] == 'AGENCIA RM')
cond &= (df3['dot_agencia_origen'].isin(['AGENCIA RM', 'AGENCIA VALPARAISO', 'AGENCIA RANCAGUA']))
df3.loc[cond, 'Turno'] = 'Turno_AM'

# N/A
df3['Turno'] = df3['Turno'].fillna('N/A')

【讨论】:

  • Ty Ferris,但它在考拉中不起作用。
猜你喜欢
  • 2015-05-22
  • 2020-11-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-17
  • 2019-12-26
  • 1970-01-01
相关资源
最近更新 更多