如果使用条件,则使用数据框

时间:2019-06-18 13:29:52

标签: python sql-server pandas dataframe databricks

使用下面的代码,我可以看到数据,其中有一行和两列。 我要选择:

  1. 如果两列均为0,则执行某操作
  2. 如果两者都大于0,则执行某些操作。

if条件出现错误。谁能帮我做到这一点吗?

  

评论:OP在此处发布示例数据集或URL

from pyspark.sql import * 
import pandas as pd
query = "(Select empID, empDept from employee)"

df1 = spark.read.jdbc(url=url, table=query, properties=properties)
df1.show()

if df1[empID]==0 && df1[empDept]==0:
    print("less than zero")
elif df1[empID]>0 && df1[empDept]>0:
    print("greather than 0")
else 
    print("do nothing")

2 个答案:

答案 0 :(得分:0)

您的脚本中存在多个语法错误。尝试下面修改的代码。

import numpy as np
if np.sum((df1["empID"]==0) & (df1["empDept"]==0)):
    print("less than zero")
elif np.sum((df1["empID"]>0) & (df1["empDept"]>0)):
    print("greather than 0")
else: 
    print("do nothing")

请注意,对数据帧列进行的任何比较(例如df1 [“ empID”] == 0)都将返回一系列布尔值,因此必须将它们作为一系列而不是常规变量来处理。

df1:

    empID  empDept
0   1       1 

输出:

greather than 0

答案 1 :(得分:0)

您的拼写有误:

  1. &&替换为and
  2. else:(“:”缺失)

尝试一下:

import pandas as pd
import numpy as np

dat = np.array([[0, 0]])
df1 = pd.DataFrame(data=dat)


if df1.loc[0, 0]==0 and df1.loc[0, 1]==0:
    print("less than zero")
elif df1.loc[0, 0]==0 and df1.loc[0, 1]>0:
    print("greather than 0")
else:
    print("do nothing")