如果条件嵌套多个

时间:2018-09-13 09:39:09

标签: python-3.x pandas dataframe if-statement

我有一个尺寸(2000行x 10列)的数据框(DF)。

如果满足以下条件,则代码的结构是多个嵌套的:

DF['NewColumn']=''

for i in range (0, len(DF))
  if condition
    define variable etc
    if condition
      DF['NewColumn'].values[i]= some value
    else:
      DF['NewColumn'].values[i]= some value  

基本上,我遍历数据框的每一行,检查条件,并根据一组if条件填充新列的每一行。

很抱歉,如果我的问题不够具体,但我正在寻找更有效地编码此问题的方法。我很想听听您的想法。

我可以使用类还是向量化?我不确定如何重组我的问题

非常感谢

1 个答案:

答案 0 :(得分:0)

您可以像这样将循环矢量化

temp = pd.DataFrame(np.random.randint(0,100,size=(100, 4)), columns=list('ABCD'))
condition1 = (temp["A"] > 20) & (temp["B"] < 20)
temp["NewColumn"] = condition1.astype(int)
condition2 = (temp["C"] > 20) & (temp["A"] < 50)
temp["NewColumn2"] = np.where(condition2, "between", "out")